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

编写按字典序输出字符串的Java程序输入3个单词出现数组越界异常如何解决

问题排查结果

错误触发原因

  • 你创建的words数组仅包含3个元素,Java数组下标从0开始计数,有效下标范围是0、1、2。你的内层循环终止条件写为j < 4,当外层循环i = 2时,j会从3开始运行,此时访问words[3]超出了数组的有效范围,直接触发数组越界异常。

修复方案

将内层循环的终止条件从j < 4修改为j < 3即可正常运行,修改后的排序逻辑代码如下:

for(int i = 0; i < 3; ++i) {
  for (int j = i + 1; j < 3; ++j) {
    if (words[i].compareTo(words[j]) > 0) {
      String temp = words[i];
      words[i] = words[j];
      words[j] = temp;
    }
  }
}

优化建议

你可以用数组的length属性代替硬编码的数值,后续如果调整输入单词的数量,不需要逐个修改循环条件,适配性更强:

for(int i = 0; i < words.length; ++i) {
  for (int j = i + 1; j < words.length; ++j) {
    if (words[i].compareTo(words[j]) > 0) {
      String temp = words[i];
      words[i] = words[j];
      words[j] = temp;
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 15:24:02