zoukankan      html  css  js  c++  java
  • 输入列画表格 在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。 有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看)输入列

    改章节个人在深圳喝咖啡的时候突然想到的...这段时间就有想写几篇关于输入列的笔记,所以回家到之后就奋笔疾书的写出来发布了

    /*
     * 
    画表格
    在形图环境中很易容做出亮漂的表格。但在控制台环境中就比拟困难了。
    有的时候可以用一些符号大略地拟模:(word文档中可能不整齐,拷贝到记事本中看)
    +-------+------+
    |abc    |xyz=tt|
    +-------+------+
    |hellomm|t2    |
    +-------+------+
    本标题要求计设一个序程,把用户输入的内容用这类“准表格”的式方现展出来。体具的要求是:
    用户输入的第一行是一个整数,表现接下来有多少行信息。接下来的每行由多少单元构成。单元间用逗号离开。
    序程出输:用表格式方新重现展的输入内容。
    例如:
    用户输入:
    3
    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。
     */
    import java.util.Scanner;
    public class 画表格 {
    	// 出输
    	public static void show(String[][] s,int[] len){
    		StringBuffer sb = new StringBuffer("+");
    		for(int i=0;i<len.length;i++){
    			for(int j=0;j<len[i];j++){
    				sb.append("-");
    			}
    			sb.append("+");
    		}
    		System.out.println(sb);
    		for(String[] x:s){
    			for(String y:x){
    				System.out.print(y);
    			}
    			System.out.println("\n"+sb);
    		}
    	}
    	// 分拆串
    	public static String[][] splitS(String[] s) {
    		String[][] t = new String[s.length][];
    		for(int i=0;i<s.length;i++){
    			t[i] = s[i].split(",");	// 按分隔符分拆
    		}
    		return t;
    	}
    	// 失掉每列的最长的串的长度
    	public static void maxLen(String[][] t, int[] len) {
    		for(int i=0;i<t[0].length;i++){
    			for(int j=0;j<t.length;j++){
    				if(t[j][i].length()>len[i]){
    					len[i] = t[j][i].length();	// 失掉每列的最长的串的长度
    				}
    			}
    		}
    	}
    	public static String fillS(String s,int n,int j,int end){
    		StringBuffer sb = new StringBuffer();
    		int x = n-s.length();
    		sb.insert(0, '|');
    		sb.append(s);
    		for(int i=0;i<x;i++){
    			sb.append(" ");
    		}
    		if(j==end){
    			sb.append("|");
    		}
    		return sb.toString();
    	}
    	// 补空格
    	public static void fillSpace(String[][] data,int[] len){
    		for(int i=0;i<data.length;i++){
    			for(int j=0;j<data[i].length;j++){
    				if(data[i][j].length()<=len[j]){
    					data[i][j] = fillS(data[i][j],len[j],j,data[i].length-1);	// 补空格
    				}
    			}
    		}
    	}
    	public static void f(String[] s){
    		String[][] data = splitS(s);	// 分拆串
    		int[] len = new int[data[0].length];
    		maxLen(data, len);	// 失掉每列的最长的串的长度
    		fillSpace(data,len);	// 补空格 加"|"
    		show(data,len);	// 出输
    	}
    	public static void main(String[] args){
    		Scanner scan = new Scanner(System.in);
    		Scanner scan2 = new Scanner(System.in);
    		System.out.println("输入的行数(整数)");
    		int n = scan.nextInt();
    		String[] s = new String[n];
    		for(int i=0;i<n;i++){
    			s[i] = scan2.nextLine();
    		}
    		f(s);
    	}
    }
        每日一道理
    今天阳光很好,坐在窗前,看窗外如此晴朗的天感觉特别舒心,雨过天晴后的世界总给人一种明媚,仿佛阳光照耀在“心田”上空,让前些天被风雨践踏的花朵新重失掉爱的关怀,重现生命的活力!

        运行结果:

    输入的行数(整数)
    3
    cat,dog,good-luck
    1,2,5
    do not use,,that
    +----------+---+---------+
    |cat       |dog|good-luck|
    +----------+---+---------+
    |1         |2  |5        |
    +----------+---+---------+
    |do not use|   |that     |
    +----------+---+---------+

    文章结束给大家分享下程序员的一些笑话语录: 开发时间
      项目经理: 如果我再给你一个人,那可以什么时候可以完工?程序员: 3个月吧!项目经理: 那给两个呢?程序员: 1个月吧!
    项目经理: 那100呢?程序员: 1年吧!
    项目经理: 那10000呢?程序员: 那我将永远无法完成任务.

  • 相关阅读:
    SharePoint 2013 安装.NET Framework 3.5 报错
    SharePoint 2016 配置工作流环境
    SharePoint 2016 站点注册工作流服务报错
    Work Management Service application in SharePoint 2016
    SharePoint 2016 安装 Cumulative Update for Service Bus 1.0 (KB2799752)报错
    SharePoint 2016 工作流报错“没有适用于此应用程序的地址”
    SharePoint 2016 工作流报错“未安装应用程序管理共享服务代理”
    SharePoint JavaScript API in application pages
    SharePoint 2016 每天预热脚本介绍
    SharePoint 无法删除搜索服务应用程序
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3033362.html
Copyright © 2011-2022 走看看