如何格式化 Java 中的打印功能以打印每个不同数字的等宽?

How to format print function in Java to print equal width per different number?

鉴于这些变量:

int a = 1, b = 123, c = 55, d= 1231;

在 Java 中有没有办法以设置的宽度 5 打印它们,比如说。如果数字少于五位数 - 只打印破折号。

1----,123--,55---,1231-

我知道这些可以通过一些循环和 if 语句来实现,寻找类似于 C++ 中的 setw() 的东西

总之不能直接做。 Java 的功能与 C 语言的“printf”格式大致相似。

您可以设置字段宽度,可以左对齐或右对齐,但您的填充字符仅限于零和 space。

Documentation

如果格式使用通用的“%s”指令,并且相应的参数是您控制的class,那么您可以实现一个'formatTo'方法来进行转换。所以包装器 class 可能对你有用。

System.out.println(String.format("%-5.5s", s).replace(" ", "-"));