如何在String中添加连续数字

时间:2017-10-18 10:14:10

标签: java string

我有一个字符串9899100101103104105我想添加连续数字,即98 + 99 + 100 ...所以我能够从字符串中删除数字并加上100.但之后我确定如何编写逻辑我正在使用String subString()方法,我已经看到(0,2),(2,4),(4,7),(7,10),(10,13),(13,16)应该是子串的开始和结束数字。在(4,7)之后我无法进行,这是我的逻辑

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)之后的其他部分我无法继续,请帮助

1 个答案:

答案 0 :(得分:1)

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

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

sum > 99时你应该增加3。在条件块中执行此操作

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个字符串?