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

字符串首尾字符检查:条件逻辑问题排查

两段代码的问题原因解析

第一段代码:首尾均为'x'时仅移除首字符

这段代码的逻辑顺序存在问题:当字符串首尾都是'x'时,第一个判断首字符为'x'的if会先触发,执行return语句后直接跳出方法,后续判断尾字符的if完全没有执行机会。

比如测试用例"xHix",第一个if满足条件后返回"Hix",末尾的'x'根本没被处理,导致测试不通过。

第二段代码:触发StringIndexOutOfBoundsException的原因

这段代码的异常主要来自两个场景:

  • 输入长度为1的字符串"x"时:
    第一个if的三个条件全部满足(长度>0、首字符是'x'、尾字符是'x'),接着执行str.substring(1, str.length()-1)。此时str.length()-1等于0,substring(1, 0)因为起始索引大于结束索引,直接抛出索引越界异常。
  • 输入空字符串时:
    虽然所有if都加了str.length()>0的判断,但如果逻辑意外走到调用str.substring(str.length()-1)的分支,str.length()-1会变成-1,调用substring(-1)必然触发异常。

另外提个优化点:代码里str.substring(0).startsWith("x")写法冗余,直接用str.startsWith("x")即可;str.substring(str.length()-1).endsWith("x")也可以简化为str.endsWith("x"),既简洁又避免多余的子串操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:45:30