Java 如何在字符串中添加连续数字

Java 如何在字符串中添加连续数字,java,string,Java,String,我有一个字符串9899100101103104105,我想添加连续的数字,即98+99+100…因此我可以从字符串中剪切数字,并将其添加到100。但是在这之后,我确定如何编写逻辑。我使用字符串子字符串方法,我看到0,2,2,4,4,7,7,10,10,13,16应该是子字符串的开始和结束数字。在4,7之后,我是无法处理,这是我的逻辑 public class MissingNumberInString { public static void main(String[] args) {

我有一个字符串9899100101103104105,我想添加连续的数字,即98+99+100…因此我可以从字符串中剪切数字,并将其添加到100。但是在这之后,我确定如何编写逻辑。我使用字符串子字符串方法,我看到0,2,2,4,4,7,7,10,10,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之后的其他部分中,我无法继续,请帮助

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

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);
}
但老实说,你的逻辑不容易维持。
你怎么知道第一个值不是9,那么你应该只在第一个字符后面加一个子串?

我可以问你为什么这样做吗?这是一项作业,你必须做吗?因为否则,我看不出有什么理由将数字连接到字符串,然后再尝试将这些数字拆分/解析回整数。是否可以更改输入,即将分隔符放入字符串或使用数字数组?@Rhayene没有输入不能更改您也需要基于总和<=99递增I,99后不能增加2…谁定义了这个字符串?为什么是98 99 103 104而不是9 89 910 3104?你的问题中有很多隐含的假设。你应该先退一步,真正澄清这些微妙的细节。不仅是为了我们,也是为了你自己。@AxeIH感谢你的解决方案为我带来的快速响应
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);
}