我在这里和这里都见过类似的问题。
但我不知道如何左垫字符串与零。
输入:“129018” 输出:“0000129018”
总输出长度应为10。
我在这里和这里都见过类似的问题。
但我不知道如何左垫字符串与零。
输入:“129018” 输出:“0000129018”
总输出长度应为10。
当前回答
右填充固定长度-10: 字符串。格式(“% 1 $ -10年代”,“abc”) 左填充固定长度-10: 字符串。格式(“% 1 $ 10 s”、“abc”)
其他回答
String str = "129018";
StringBuilder sb = new StringBuilder();
for (int toPrepend=10-str.length(); toPrepend>0; toPrepend--) {
sb.append('0');
}
sb.append(str);
String result = sb.toString();
使用谷歌番石榴:
Maven:
<dependency>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
<version>14.0.1</version>
</dependency>
示例代码:
Strings.padStart("129018", 10, '0') returns "0000129018"
如果你需要性能并且知道字符串的最大大小,使用以下方法:
String zeroPad = "0000000000000000";
String str0 = zeroPad.substring(str.length()) + str;
注意最大字符串大小。如果它大于StringBuffer的大小,你会得到一个java.lang.StringIndexOutOfBoundsException。
如果你的字符串只包含数字,你可以让它成为一个整数,然后做填充:
String.format("%010d", Integer.parseInt(mystring));
如果没有,我想知道如何才能做到。
String paddedString = org.apache.commons.lang.StringUtils.leftPad("129018", 10, "0")
第二个参数是期望的输出长度
"0"是填充字符