You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:04:44