gpt4 book ai didi

java - StringIndexOutOfBoundsException

转载 作者:行者123 更新时间:2023-12-01 08:06:13 27 4
gpt4 key购买 nike

我创建了一个应该清理String的方法。它必须删除 [a,z] 范围内的每个字符。

但我收到此异常:StringIndexOutOfBoundsException。当我插入超出条件的数字时,就会弹出此异常。我无法发现自己​​做错了什么。

    public static String kuisStringOp(String str){
StringBuilder strb = new StringBuilder(str);

for (int i = 0; i < str.length(); i++) {
if(strb.charAt(i)<'a'||strb.charAt(i)>'z'){

strb.deleteCharAt(i);


}

}
return strb.toString();
}

最佳答案

您正在运行原始字符串的整个长度,但正在删除 StringBuilder 中的一些字符。删除字符后,您的 StringBuilder 会比原始 String 短,并且内容会移动以覆盖已删除的字符。在到达原始 String 的末尾之前,您最终会跑完 StringBuilder 的末尾。

更改 for 循环条件以检查 StringBuilder 的长度,如果删除一个字符,另一个字符现在会取代它。通过递减 i 再次检查:

for (int i = 0; i < strb.length(); i++) {
if(strb.charAt(i)<'a'||strb.charAt(i)>'z'){
strb.deleteCharAt(i);
i--;
}

}

关于java - StringIndexOutOfBoundsException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21386764/

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