【问题标题】:Java println formatting so I can display a table?Java println 格式化以便我可以显示表格?
【发布时间】:2009-08-31 17:38:52
【问题描述】:

我如何利用System.out.print(ln/f) 将我的输出格式化为表格?

如果我要使用printf,我应该指定什么格式来实现以下结果?

我要打印的示例表:

n       result1      result2      time1      time2    
-----------------------------------------------------  
 5      1000.00      20000.0      1000ms     1250ms
 5      1000.00      20000.0      1000ms     1250ms
 5      1000.00      20000.0      1000ms     1250ms

所有东西都排列整齐漂亮吗?

【问题讨论】:

  • 我没有做作业,我发现这个问题很有用

标签: java command-line


【解决方案1】:

是的,从Java 5开始,用于System.outPrintStream类有printf方法,这样你就可以使用string formatting.


更新:

实际的格式化命令取决于您要打印的数据、所需的确切间距等。以下是许多可能的示例之一:

System.out.printf("%1s  %-7s   %-7s   %-6s   %-6s%n", "n", "result1", "result2", "time1", "time2");
System.out.printf("%1d  %7.2f   %7.1f   %4dms   %4dms%n", 5, 1000F, 20000F, 1000, 1250);
System.out.printf("%1d  %7.2f   %7.1f   %4dms   %4dms%n", 6, 300F, 700F, 200, 950);

【讨论】:

  • 在 printf 中添加什么来制作表格标题?
  • 你想看就写。 printf() 不是制表工具。
【解决方案2】:

您可以println("\t") 打印一个标签,它会轻松对齐所有内容。

【讨论】:

  • 如果值的长度不同,则不会。
  • 虽然\t 并不完美,但许多终端会将制表符格式化为可变间距元素,让您可以轻松地将相似数据对齐到列中。更好的是,像 Excel 这样的电子表格程序可以轻松解析制表符分隔数据 (TSV) - 就我个人而言,我发现这种格式比更常见的逗号分隔 (CSV) 格式更易读且更易于使用。
猜你喜欢
  • 1970-01-01
  • 2014-09-16
  • 2012-08-08
  • 2017-11-12
  • 2012-04-27
  • 1970-01-01
  • 2013-10-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多