gpt4 book ai didi

java - 增量后整数作为字符串进行零填充

转载 作者:行者123 更新时间:2023-12-02 09:39:13 25 4
gpt4 key购买 nike

我需要将仅是数字的字符串加一:

String current = "000433"; //After increment, will be "000434"

我有这个程序,可以正常工作:

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;
}

流程是:

  1. 计算左边的零
  2. 解析为整数
  3. 加一
  4. 解析为字符串
  5. 添加左边的零

字符串形式的数字长度未知。我确信存在另一种更简单、更干净的方法,使用正则表达式或其他东西。我可以采用哪些替代方案?

谢谢。

最佳答案

像这样使用 String.format() 怎么样? :

String original = "000433";
String incremented = String.format("%0" + original.length() + "d",
Integer.parseInt(original) + 1);

System.out.println(incremented);

关于java - 增量后整数作为字符串进行零填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29532757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com