如何在一个字符串中添加连续的数字
问题描述:
我有一个字符串9899100101103104105我想添加连续的数字,即98 + 99 + 100 ...所以我能够从字符串中删减数字并加上100.但是在那之后我确信如何写逻辑。我使用String subString()方法,我已经看到(0,2),(2,4),(4,7),(7,10),(10,13 ),(13,16),应该是子开始和结束digits.After(4,7)我不能够proceeed,这里是我的逻辑如何在一个字符串中添加连续的数字
public class MissingNumberInString {
public static void main(String[] args) {
String numbr = "9899100101103104105";
firstTwo(numbr);
}
public static void firstTwo(String str) {
int sum =0;
int num = 0;
for(int i=0;i<str.length()-1;i=i+2){
if(sum <=99){
sum += Integer.parseInt(str.substring(i, i+2));
}else{
sum += Integer.parseInt(str.substring(i, i+3));
}
System.out.println(sum);
}
}
}
中的其他部分之后(4,7)我我无法继续,请帮助
答
您的增量根据最后一个值失败。所以,保持你的逻辑:
for(int i=0;i<str.length()-1;i=i+2){
if(sum <=99){
sum += Integer.parseInt(str.substring(i, i+2));
}else{
sum += Integer.parseInt(str.substring(i, i+3));
}
System.out.println(sum);
}
你应该3时sum > 99
incremente。这样做,在条件方框
for(int i=0;i<str.length()-1; /* removed incrementation */){
if(sum <=99){
sum += Integer.parseInt(str.substring(i, i+2));
i=i+2;
}else{
sum += Integer.parseInt(str.substring(i, i+3));
i=i+3;
}
System.out.println(sum);
}
但说实话,你的逻辑并不容易维护。 你怎么知道第一个值不是9
然后你应该只有1
字符第一个字符?
+0
@AxeIH感谢您的解决方案为我提供的快速响应 – Mandrek
我可以问你为什么这样做?这是一项任务,你必须这样做吗?因为否则,我看不出为什么要将数字连接到一个字符串,然后尝试再次将这些数字拆分/解析回整数。 –
是否可以更改输入(即将分隔符字符放入字符串中或使用数字数组)? – Rhayene
@Rhayene无法输入无法更改 – Mandrek