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

Java实现hasRepeat方法检测连续重复字符测试失败如何解决

代码问题分析

你的代码存在两个核心错误,导致无重复字母的场景也返回true:

  • 比较逻辑完全错误:substring()是左闭右开的取值规则,当内层循环j = i + 1时,word.substring(i, j)实际和word.substring(i, i+1)取值完全一致,所以只要传入的字符串长度≥2,这个判断永远为真,直接返回true,根本不会判断字符是否真的重复。
  • 逻辑冗余不符合需求:需求仅要求判断连续重复的字母,不需要双重循环遍历所有字符组合,只需要单次遍历对比相邻两个字符即可。
修复方案

首先处理边界条件:如果传入的字符串为null或者长度小于2,不可能存在连续两个重复字母,直接返回false;然后遍历字符串,逐个对比当前字符和后一个字符是否相等,只要出现相等的情况直接返回true,遍历完都没有符合条件的就返回false。
正确代码如下:

public static boolean hasRepeat(String word) {
    // 边界处理:空字符串或长度不足2直接返回false
    if (word == null || word.length() < 2) {
        return false;
    }
    // 单次遍历对比相邻字符
    for (int i = 0; i < word.length() - 1; i++) {
        if (word.charAt(i) == word.charAt(i + 1)) {
            return true;
        }
    }
    return false;
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 02:45:01