100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > java实现控制台表格

java实现控制台表格

时间:2020-01-02 03:07:26

相关推荐

java实现控制台表格

画表格在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看)+-------+------+|abc |xyz=tt|+-------+------+|hellomm|t2 |+-------+------+本题目要求设计一个程序,把用户输入的内容用这种“准表格”的方式展现出来。具体的要求是:用户输入的第一行是一个整数,表示接下来有多少行信息。接下来的每行由若干单元组成。单元间用逗号分开。程序输出:用表格方式重新展现的输入内容。例如:用户输入:cat,dog,good-luck1,2,5do not use,,that则程序输出:(word文档中可能不整齐,拷贝到记事本中看)+----------+---+---------+|cat |dog|good-luck|+----------+---+---------+|1 |2 |5 |+----------+---+---------+|do not use| |that|+----------+---+---------+从中不难看出:两个连续的逗号表示中间有一个内容为空的单元列的数目由最大的单元数的那行决定列的宽度由同列的最宽的单元决定单元格中的信息左对齐可以假设:用户输入的最大行数为30,可能的最多列数为40。

package com.liu.ex8;import java.util.Scanner;public class Main {public void printResult(String[] A) {String[] tempA = A[0].split(",");int maxLen = tempA.length;for(int i = 1;i < A.length;i++) {tempA = A[i].split(",");if(maxLen < tempA.length)maxLen = tempA.length;}String[][] valueA = new String[A.length][maxLen];for(int i = 0;i < valueA.length;i++)for(int j = 0;j < valueA[0].length;j++)valueA[i][j] = "";for(int i = 0;i < A.length;i++) {tempA = A[i].split(",");for(int j = 0;j < tempA.length;j++)valueA[i][j] = tempA[j];}int[] maxJ = new int[maxLen];for(int j = 0;j < maxLen;j++) {for(int i = 0;i < A.length;i++) {if(valueA[i][j].length() > maxJ[j])maxJ[j] = valueA[i][j].length();}}StringBuilder opera = new StringBuilder("+");for(int j = 0;j < maxJ.length;j++) {for(int k = 0;k < maxJ[j];k++)opera.append('-');opera.append('+');}for(int i = 0;i < valueA.length;i++) {System.out.println(opera);System.out.print("|");for(int j = 0;j < valueA[0].length;j++) {int len = maxJ[j] - valueA[i][j].length();String format = "";if(len == 0)format = "" + "%s";else format = "%" + len + "s";System.out.print(valueA[i][j]);System.out.printf(format, "");System.out.print("|");}System.out.println();}System.out.println(opera);return;}public static void main(String[] args) {Main test = new Main();Scanner in = new Scanner(System.in);int n = in.nextInt();in.nextLine();String[] A = new String[n];for(int i = 0;i < n;i++)A[i] = in.nextLine();test.printResult(A);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。