我有一个字符串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)之后的其他部分我无法继续,请帮助
答案 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
个字符串?