gpt4 book ai didi

java - 删除相邻重复字母时的 StringIndexOutOfBounds

转载 作者:行者123 更新时间:2023-12-01 16:50:19 24 4
gpt4 key购买 nike

这是我的代码:

 public static String removeAdjDuplicates(String s) {
if(s == "" || s == null || s.isEmpty())
return s;

if(s.length() < 2)
return s;

if(s.charAt(0) != s.charAt(1))
s = s.charAt(0) + removeAdjDuplicates(s.substring(1));

if(s.charAt(0) == s.charAt(1)) //line 37
return removeAdjDuplicates(s.substring(2));

return s;
}

输入字符串“ull”时,出现以下错误:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
at java.lang.String.charAt(String.java:658)
at GFG.removeAdjDuplicates(File.java:37)
at GFG.main(File.java:16)

我阅读并尝试了类似问题的答案,但我不确定出了什么问题。

最佳答案

从您收到的异常来看,removeAdjDuplicates 返回一个空字符串,使所有超过零的索引无效。

尽管您的代码在顶部执行长度检查,但当两个初始字符不同时,它也会执行此分配:

s = s.charAt(0) + removeAdjDuplicates(s.substring(1));

这意味着,如果 removeAdjDuplicates 返回空字符串,则 s 可以变成单字符字符串。

关于java - 删除相邻重复字母时的 StringIndexOutOfBounds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41477037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com