java实现控制台表格

匿名 (未验证) 提交于 2019-12-02 21:52:03

版权声明:署名,允许他人基于本文进行创作,且必须基于与原先许可协议相同的许可协议分发本文 (Creative Commons
画表格  在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看) +-------+------+ |abc    |xyz=tt| +-------+------+ |hellomm|t2    | +-------+------+  本题目要求设计一个程序,把用户输入的内容用这种“准表格”的方式展现出来。具体的要求是: 用户输入的第一行是一个整数,表示接下来有多少行信息。接下来的每行由若干单元组成。单元间用逗号分开。 程序输出:用表格方式重新展现的输入内容。 例如:  用户输入: cat,dog,good-luck 1,2,5 do 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);     } } 
文章来源: https://blog.csdn.net/a1439775520/article/details/97023523
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!