我需要增加一个只有数字的字符串:
String current = "000433"; //After increment, will be "000434"
Run Code Online (Sandbox Code Playgroud)
我有这个程序,它正常工作:
private String incrementOne(String numberAsString) {
int leftZeroCount = countLeadingZeros(numberAsString);
Integer asInteger = Integer.parseInt(numberAsString);
asInteger++;
return parseStringWithNZeros(asInteger, leftZeroCount);
}
private String parseStringWithNZeros(Integer asInteger, int leftZeroCount) {
String asString = Integer.toString(asInteger);
for (int i = 0; i < leftZeroCount; i++)
asString = "0" + asString;
return asString;
}
private int countLeadingZeros(String numberAsString) {
int count = 0;
int i = 0;
while (numberAsString.charAt(i) == '0' && i < numberAsString.length()) {
count++;
i++;
}
return count;
}
Run Code Online (Sandbox Code Playgroud)
过程是:
作为String的数字长度未知.我确信存在另一种更容易和更清洁的方式,使用正则表达式或其他东西.我可以采用哪些替代方案?
谢谢.
Rob*_*sen 14
怎么样这样做,使用String.format():
String original = "000433";
String incremented = String.format("%0" + original.length() + "d",
Integer.parseInt(original) + 1);
System.out.println(incremented);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1581 次 |
| 最近记录: |