【发布时间】:2015-12-14 22:25:15
【问题描述】:
我很想知道以网格布局格式或表格布局格式打印文本的方法,其中输入文本在列|行类型布局中垂直对齐-(可以是任何语言,我感兴趣食谱)
例如,假设我有一个代表我的行的字符串数组
String[] s = new String[]{"Adele","Taylor","Katty","Beyonce","Mariah"};
String[] s1 = new String[]{"Java","Android","Ruby","Pascal","Python"};
String[] s2 = new String[]{"Ronaldo","Ibrahimovic","Tevez","Rooney","Ronaldhino"};
String[] s3 = new String[]{"Stackoverflow","Facebook","Twitter","Amazon","Scrybasms"};
我想以类似这样的表格格式将其打印到控制台/文本文件/等
Adele Taylor Katty Beyonce Mariah
Java Android Ruby Pascal Python
Ronaldo Ibrahimovic Tevez Rooney Ronaldhino
Stackoverflow Facebook Twitter Amazon Scrybasms
但是您可以看到它们没有正确对齐;在 gui 应用程序上,这是它的外观
在我的日食上
它们都有不同的对齐方式,我不知道为什么,因此我想要一种更好的通用方式来实现我想要的。谢谢
编辑
谢谢大家,评论者和回答者我已经用出现最多的单词“MonoSpace”解决了这个问题。 :)
【问题讨论】:
-
这是不可能的,因为您不知道将使用哪种字体来显示文本(对于文本文件,它取决于显示它的程序,甚至可能是程序设置 - 您已经在问题)。如果是 gui 库,您可以设置字体或确定字体并使用它的属性来测量文本宽度(不保证给定字体甚至可以精确对齐 [等宽字体除外]。)跨度>
-
我认为在这种情况下使用
Table更合适。 -
@fabian 我现在正在尝试它会让你知道发生了什么事,谢谢你,如果我能让它工作-再次感谢你;希望你的前三个词不是意味着它们听起来的方式:)
-
你能给我一个使用表格的逻辑,让它看起来和功能像一个文本显示吗?尽管@PhamTrung,我会很高兴我远离赏金的一天
-
在 Java 中填充文本的选项很少。您可以使用 Strings.format、Apache StringUtils 或 Guava 库。在所有这些中,用于输出的文本都应该是等宽的。
标签: java string algorithm text javafx