java实现控制台表格
画表格在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。有的时候可以用一些符号大略地模拟:(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);}
}
java实现控制台表格相关推荐
- java 读取控制台_Java从控制台读入数据的几种方法总结
这里记录Java中从控制台读入信息的几种方式,已备后查! (1)JDK 1.4(JDK 1.5和JDK 1.6也都兼容这种方法) public class TestConsole1 { public ...
- java 浏览器 excel导出excel_使用Java导出Excel表格并由浏览器直接下载——基于POI框架...
非异步方法 /** * 使用Java导出Excel表格并由浏览器直接下载--基于POI框架 * * @param response * @return * @throws IllegalAccessE ...
- java从控制台读取字符串_从控制台读取Java字符串
java从控制台读取字符串 Today we will look into different ways to read string from console in java. 今天,我们将研究从J ...
- JAVA读取Excel表格,建数据库建表,并生成java实体实例
转自:https://blog.csdn.net/wuyongde_0922/article/details/43233413 JAVA读取Excel表格,建数据库建表,并生成java实体实例,这一篇 ...
- Java Graphics绘制表格和直方图
Java Graphics绘制表格和直方图 最近有一个需求是使用Java的swing中Graphics绘制表格和直方图,感觉还是有点意思记录一下,先上图. 开始感觉有点复杂,其实和自己在Windo ...
- Java导出Excel表格出现文件损坏异常解决方案
Java导出Excel表格出现文件损坏异常解决方案 问题出现 问题出现 本人遇到这个问题,由于是第一次见,感觉无从下手.但是导出功能很常见,做的也很多,只有这个出现了文件损坏,那很可能是代码写的有问题 ...
- java访问excel表格_Java读取excel表格(示例代码)
Java读取excel表格 一般都是用poi技术去读取excel表格的,但是这个技术又是什么呢 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建, ...
- Java 操作excel表格 - JXL(Java excel api)
Java 操作excel表格 Java 操作 Excel 最常用的就是JXL(Java excel api)和POI,用起来挺简单的,不过相应的其功能也并非很强大,够用就行! 首先,下载jxl.jar ...
- Java对Excel表格的操作
Java对Excel表格的操作 目前软件开发多采用B/S架构.正B/S架构可以给软件的开发部署带来很大的便利,但是与此同时这种架构也带来了一些问题,例如Web报表的处理等,在B/S架构下,客户端的开发 ...
- java 生成word表格
JAVA生成WORD文件的方法目前有以下种: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案.(需要下载jacob.jar以及jacob.dl ...
最新文章
- android studio mac svn插件,mac下Android studio如何使用SVN进行版本控制?
- 基因分子生物学(1)-基因常识与DNA常识
- 音视频封装格式、编码格式知识
- Android下的Junit测试
- 重构老系统遗留代码的一些方法学习笔记
- iis php网站500错误原因_如何解决iis php 500错误问题
- matlab直扩序列生成,基于matlab的直接序列扩频通信系统仿真毕业论文
- libpcre.so.1 cannot be found
- RecyclerView 下拉刷新上拉加载
- AI技术如何做工程?
- golang xorm cmd xorm工具使用 reverse 反转一个数据库结构,生成代码
- 案例应用|如何借助SPC软件实现汽车零配件品质管理
- C语言面向对象(下):驱动设计技巧
- 离散数学之矩阵关系运算
- VMware虚拟机NAT模式共享主机无线网络的配置方法
- 计算多项式的小技巧(Horner法则)
- (转载)shell脚本中的 EOF 是什么意思?
- 什么是序列化与反序列化
- wx小程序(wxml)
- codeforces 1367B - Even Array