增量后将整数零填充为字符串

Héc*_*tor 2 java

我需要增加一个只有数字的字符串:

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)

过程是:

  1. 计算左边的零
  2. 解析为整数
  3. 增加一个
  4. 解析为String
  5. 添加左边的零

作为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)