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

Java判断字符串每个x是否紧跟o的代码测试未通过问题排查

代码问题分析
  • 提前返回导致检查不完整:代码只要遇到第一个x,不管后续有没有其他不符合规则的x,都会直接返回结果。比如输入xoxx,第一个x后是o就直接返回true,但第三个x后面还是x,实际应该返回false。
  • 无x场景返回值错误:需求要求所有x都紧跟o,当字符串中没有x时,规则自然成立应该返回true,但你的代码在循环结束后统一返回false,比如输入abc会返回错误结果。
  • 末尾x的判断逻辑存在漏洞:如果x出现在字符串最后一位,你设置的循环条件i < str.length()-1会跳过最后一位的判断,比如输入ox的场景下,最后一位的x不会被检测,容易返回错误结果。
  • 方法命名不规范:main是Java程序入口的专用方法名,普通业务方法不建议用这个名称避免歧义。

测试用例截图

修复后的代码
public class XO {
  public boolean checkXFollowedByO(String str) {
    for (int i = 0; i < str.length(); i++){
      if (str.charAt(i) == 'x'){
        // x在最后一位或者后一位不是o,直接不符合规则
        if (i == str.length() - 1 || str.charAt(i+1) != 'o'){
          return false;
        }
        // 跳过已经校验过的o,避免重复判断
        i++;
      }
    }
    // 所有x都符合规则/不存在x,返回true
    return true;    
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:09:02