Java字符串整数求和问题:代码未识别末尾数字导致计算错误
问题分析与修复:字符串末尾数字未被统计
嘿,我一眼就看出问题所在了!你的代码逻辑大部分是对的,但漏掉了循环结束后处理最后一段数字的环节。
咱们来理一理:你的代码在遇到非数字字符时,才会把累积的num字符串转成整数加到sum里。但当字符串最后几个字符是数字(比如这里的"4")时,循环跑完后根本没触发else分支——因为没有遇到非数字字符来触发累加操作,所以这个"4"一直留在num里,没被算进总和。
修复后的完整代码
public static void main(String[] args) { String str = "abc22gh20fg4"; String num = ""; int sum = 0; for (int i = 0; i < str.length(); i++) { if (Character.isDigit(str.charAt(i))) { num = num + str.charAt(i); } else { if (!num.equals("")) { sum = sum + Integer.parseInt(num); num = ""; } } } // 循环结束后,检查是否还有未处理的数字 if (!num.equals("")) { sum = sum + Integer.parseInt(num); num = ""; } System.out.println(sum); // 现在输出46,符合预期 }
关键修复点
在for循环结束后,新增一段判断:如果num不为空,说明字符串末尾还有未处理的数字,把它转成整数加到sum里即可。这样不管数字在字符串中间还是末尾,都能被正确统计到啦。
内容的提问来源于stack exchange,提问作者BreakTheCode
相关产品推荐
相关产品推荐

