【发布时间】:2022-07-22 22:02:11
【问题描述】:
我正在处理字符串并解决问题。问题陈述是“将字符串内的所有数字加一”。对于输入数字 129 和 9923,我没有得到所需的输出。 谁能帮忙!
import java.util.*;
public class Increment {
public static void main(String[] args) {
String number = "129";
int len = number.length();
int i = 0;
int temp = 0;
int before = 0;
int carry = 0;
String result = number;
for (i = len - 1; i >= 0; i--) {
temp = Integer.parseInt(number.charAt(i) + "");
if (temp >= 0 && temp < 9) {
carry = 0;
temp = temp + 1;
result = result.replace(number.charAt(i), (char)(temp + '0'));
} else {
carry = 1;
if (i != 0) {
before = Integer.parseInt(number.charAt(i - 1) + "");
before = before + 1;
result = result.replace(number.charAt(i), '0');
result = result.replace(number.charAt(i - 1), (char)(before + carry));
i = i - 1;
} else {
result = result.replace(number.charAt(i), '0');
result = "1" + result;
}
}
}
System.out.println(result);
}
}
【问题讨论】:
-
您可能想告诉我们您对这些案例的期望输出。 eG应该
"129"导致"230"或"240"或"2310"或其他什么? -
240 因为对于数字 9,您将 1 添加两次和 10034。
-
既然
129应该变成240因为9+1=10 这意味着1需要再次添加到2,那么为什么@987654330 @ 应该变成10034而不是11034?