YTU OJ-1317: 控制台表格

1317: 控制台表格

Time Limit: 1 Sec   Memory Limit: 128 MB
Submit: 46   Solved: 15
[ Submit][ Status][ Web Board]

Description


画表格

在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看)
+-------+------+
|abc    |xyz=tt|
+-------+------+
|hellomm|t2    |
+-------+------+

本题目要求设计一个程序,把用户输入的内容用这种“准表格”的方式展现出来。

Input

用户输入的第一行是一个整数,表示接下来有多少行信息。接下来的每行由若干单元组成。单元间用逗号分开。

Output

程序输出:用表格方式重新展现的输入内容。

Sample Input

3
cat,dog,good-luck
1,2,5
do not use,,that

Sample Output

+----------+---+---------+
|cat       |dog|good-luck|
+----------+---+---------+
|1         |2  |5        |
+----------+---+---------+
|do not use|   |that     |
+----------+---+---------+

import java.util.*;
public class 控制台表格 {
	static String[][] s=new String[256][256];
	static int[] a=new int[100];
	static int[] maxl=new int[100];
	static int n;
	static int c=0;
	//处理函数
	public static void f() {
		int j=0;
		for(int i=0;i<s[0].length;i++) {
			if(!s[0][i].equals(null))
				c++;
		}
		while(j<c) {
			for(int i=0;i<n;i++) {
				if(s[i][j].length()>maxl[j]){
					maxl[j]=s[i][j].length();
				}
			}
			j++;
		}
	}
	//输出函数
	public static void print() {
		border();
		for(int i=0;i<n;i++) {
			System.out.print('|');
			for(int j=0;j<c;j++) {
				System.out.print(s[i][j]);
				if(s[i][j].length()<maxl[j]) {
					for(int k=s[i][j].length();k<maxl[j];k++)
						System.out.print(" ");
				}
				if(j==c-1)
					System.out.println('|');
				else
					System.out.print('|');
			}
			border();
		}
	}
	//边界输出函数
	public static void border() {
		System.out.print('+');
		for(int i=0;i<c;i++) {
			for(int k=0;k<maxl[i];k++) {
				System.out.print('-');
			}
			if(i==c-1)
				System.out.println('+');
			else
				System.out.print('+');
		}
	}
	public static void main(String[] args) {
		Scanner in=new Scanner(System.in);
		n=in.nextInt();
		s[0]=in.nextLine().split(",");
		for(int i=0;i<n;i++) {
			s[i]=in.nextLine().split(",");
		}
		f();
		print();
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值