1

我知道我们可以用这样的格式化程序左填充整数:

String.format("%7d", 234);   // "    234"
String.format("%07d", 234);  // "0000234"
String.format("%015d", 234); // "0000000000000234"

但是,如何用点替换零(如纯文本内容索引)?

String.format("%.13d", 234); // doesn't work

我想制作这个:

..........234

我知道我可以使用循环来添加点,但我想知道是否有办法使用格式化程序来做到这一点。

4

4 回答 4

3

我认为没有这样.的填充,但你可以用空格填充,然后替换它们。

 String.format("%15d", 234).replaceAll(' ', '.');
于 2011-05-30T21:26:36.657 回答
1

没有办法单独使用格式化程序,但是

String.format("%015d", 234).replaceFirst("0*","\.");

应该做得很好。

(当然,你必须对字符串一些事情——这个会产生一个 String 对象,然后消失,因为它没有分配给任何东西。)

更新

该死的,忘记了*正则表达式中的重复。

于 2011-05-30T21:19:30.017 回答
1

另一种方法是使用 Apache Commons Lang 库。 http://commons.apache.org/lang/api-release/org/apache/commons/lang/StringUtils.html#leftPad%28java.lang.String,%20int,%20char%29

grundprinzip 已经指出...

于 2011-05-30T21:24:39.547 回答
0

您可以手动完成。它并不漂亮,但它有效。

String str = Integer.toString( 234 );
str = "...............".substring( 0, Math.max( 0, 15 - str.length() ) ) + str;
于 2011-05-30T21:27:42.053 回答