我知道我们可以使用这样的格式化程序左键整数:
String.format("%7d", 234); // " 234"
String.format("%07d", 234); // "0000234"
String.format("%015d", 234); // "0000000000000234"
但是,如何用点替换零(如纯文本内容索引)?
String.format("%.13d", 234); // doesn't work
我想制作这个:
..........234
我知道我可以使用循环来添加点,但我想知道是否有办法用格式化程序执行此操作。
答案 0 :(得分:3)
我认为没有这样的.
填充内置,但您可以使用空格填充然后替换它们。
String.format("%15d", 234).replaceAll(' ', '.');
答案 1 :(得分:1)
单独使用格式化板无法做到,但
String.format("%015d", 234).replaceFirst("0*","\.");
应该没问题。
(当然,你必须做字符串的东西 - 这个产生一个String对象然后消失,因为这不会分配给任何东西。)
更新
该死的,忘了在正则表达式中重复*
。
答案 2 :(得分:1)
另一种方法是使用Apache Commons Lang lib。 http://commons.apache.org/lang/api-release/org/apache/commons/lang/StringUtils.html#leftPad%28java.lang.String,%20int,%20char%29
grundprinzip已经指出了......
答案 3 :(得分:0)
您可以手动执行此操作。它不漂亮,但它有效。
String str = Integer.toString( 234 );
str = "...............".substring( 0, Math.max( 0, 15 - str.length() ) ) + str;