java - 如何在 Java 中打印对齐列中的字符串?

标签 java string output stringtokenizer

我有一个关于打印字符串的问题。该程序应完成以下工作: 获取一个字符串作为参数并识别单词并将它们打印在对齐的三列中: 示例:

the quick brown fox jumped over the lazy dog

输出应该是:

the  quick   brown
fox  jumped  over
the  lazy    dog

我的解决方案是

private void printColumn(String s){
StringTokenizer toker = new StringTokenizer(s);
while (toker.hasMoreTokens()){
    String temp = "";
    for (int i = 0; i < 3; i++){
  temp +=toker.nextToken();
}
    System.out.print(temp);
System.out.println();
}
}

但是我的输出没有对齐

the  quick  brown
fox  jumped  over
the  lazy  dog

有什么建议吗?

最佳答案

使用 printf(...) 或 String.format(...) 并添加正确的格式。

不要在每个单词后添加制表符“\t”。
这个解决方案不好,因为如果一个词长于一个制表符空间,它会搞砸(因为它会跳转到词后的下一个制表符空间)。

感谢 Hovercraft Full Of Eels 提供的完整解决方案。

关于java - 如何在 Java 中打印对齐列中的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17159692/

相关文章:

objective-c - 在Objective-C中播放字符串数组中的声音

Python。如何重定向玛雅历史?

谁能解释一下输出

java - 在 Java 中处理异常或抛出异常

java - 如果同时有 100 个 doGet() 请求到一个 servlet,它会阻塞其他 99 个请求直到被调用的 doGet() 返回吗?

java - 如何使用模板自动创建jFrame?

C# FormatException double.parse(),为什么 0.89 不解析?

java - 如何通过单击在 JButton 上添加 JTextField?

Ruby 实现是_numeric?对于字符串,需要更好的选择

java - 如何随机化输出