Java 在PrintWriter中使用printf()的字符串的可变宽度
我试图在我的输出中实现均匀的缩进。因此,即使字符串长度不同,字符串之间的宽度也将继续匹配。我的意思是,如果我想打印一个包含人的名字、年龄和体重的文本文件,但我希望缩进保持均匀Java 在PrintWriter中使用printf()的字符串的可变宽度,java,Java,我试图在我的输出中实现均匀的缩进。因此,即使字符串长度不同,字符串之间的宽度也将继续匹配。我的意思是,如果我想打印一个包含人的名字、年龄和体重的文本文件,但我希望缩进保持均匀 Ryan 1 1 Alexander 25 180 Ashish P. 51 217 Ben 19 130 我知道固定宽度不起作用,因为名称可以很长也可以很短 writer.printf("%s%10d%10d", name, age,
Ryan 1 1
Alexander 25 180
Ashish P. 51 217
Ben 19 130
我知道固定宽度不起作用,因为名称可以很长也可以很短
writer.printf("%s%10d%10d", name, age, weight);
我使用PrintWriter.printf()进行此操作,尽管我认为它也适用于System.out.printf()和.format()。您可以尝试使用制表器来分隔每个字段(\t char)
但如果最短名称和最长名称的长度之差大于制表器的大小,则这可能不起作用。在这种情况下,您运气不好,您必须自己实现逻辑。是的,这是我尝试的第一个方法之一,但由于长度不同,尤其是名称,而且制表符是以倍数4完成的,因此宽度并没有按照我的要求整齐划分。您可以迭代名称并找到最长的名称。然后计算字段位置长度并再次迭代。打印空格数减去字段长度和字段本身。
writer.printf("%s\t%d\t%d", name, age, weight);