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

运行输出以b开头单词的Java程序为何出现溢出异常

问题原因

  • 抛出的是StringIndexOutOfBoundsException字符串索引越界异常,核心问题是while循环的条件判断顺序错误
  • Java的逻辑与运算符&&为短路求值逻辑,会优先执行左侧表达式,只有左侧结果为真时才会执行右侧表达式。你编写的判断顺序为sentence.charAt(j) != ' ' && j<sentence.length(),当j自增到等于字符串长度时,程序会先调用sentence.charAt(j)尝试读取超出字符串边界的索引,直接触发越界异常,不会执行右侧的边界校验逻辑。

修复方案

将while循环的两个条件调换顺序,先做边界校验再读取字符即可解决问题:

while (j < sentence.length() && sentence.charAt(j) != ' ') {
    // 原有输出逻辑
}

额外优化提示

当前逻辑只能匹配前面带空格的b开头单词,无法识别句子开头第一个单词就是b开头的情况,可以额外补充对字符串首字符的判断规则覆盖这类场景。

内容的提问来源于stack exchange,提问作者Teo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 07:15:06