如何在一个字符串中添加连续的数字

问题描述:

我有一个字符串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)我我无法继续,请帮助

+2

我可以问你为什么这样做?这是一项任务,你必须这样做吗?因为否则,我看不出为什么要将数字连接到一个字符串,然后尝试再次将这些数字拆分/解析回整数。 –

+0

是否可以更改输入(即将分隔符字符放入字符串中或使用数字数组)? – Rhayene

+0

@Rhayene无法输入无法更改 – Mandrek

您的增量根据最后一个值失败。所以,保持你的逻辑:

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