You need to enable JavaScript to run this app. Java实现拼写检查方法报String index out of range错误求解
优惠活动
大模型
产品
解决方案
定价
更多

Java实现拼写检查方法报String index out of range错误求解

问题原因分析
  • 下标越界根因:你在内层循环中没有使用循环变量j,始终用外层循环的i作为下标读取answer的字符,当answer的长度小于engWord的长度时,i会增长到超过answer的最大下标,触发字符串下标越界异常。
  • 逻辑错误:嵌套的双层循环设计完全不符合拼写检查的需求,当前写法会对engWord的每个字符,重复比对answer.length()次,同一个位置的拼写错误会被重复计数,最终统计的错误数完全失真。
修正方案

拼写检查统计字符错误的常规逻辑:先取两个字符串的最大长度作为遍历上限,相同下标位置的字符不一致则计数+1,其中较短字符串超出自身长度的位置全部判定为错误。

修正后的代码如下:

public static int spellCheck(String answer, String engWord) {
    int error = 0;
    int maxLen = Math.max(answer.length(), engWord.length());
    for (int i = 0; i < maxLen; i++) {
        // 任意一个字符串已遍历到末尾,或当前位置字符不一致都算错误
        if (i >= answer.length() || i >= engWord.length() || answer.charAt(i) != engWord.charAt(i)) {
            error++;
        }
    }
    return error;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 08:15:02