gpt4 book ai didi

java - 字符串索引越界错误

转载 作者:行者123 更新时间:2023-11-30 11:50:41 25 4
gpt4 key购买 nike

以下代码试图给定一个字符串,递归地(无循环)计算字符串中小写“x”字符的数量。

代码有这个错误:线程“main”中的异常 java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0

这段代码的主要方法是:

public static void main(String [] args)
{
System.out.println(countX("hx1x"));
}

实际代码是:

public static int countX(String str)
{
if(str.charAt(0) != 'x')
{
if(str.indexOf('x') >= 1)
{
return countX(str.substring(1, str.length()));
}
else
{
return 0;
}
}
else
{
return 1 + countX(str.substring(1, str.length()));
}
}

最佳答案

只需添加

    if (str.length() <= 0) return 0;

在 countX(...) 开始

异常抛出在

    if(str.charAt(0) != 'x')

当str为""

顺便说一句。在为每个字符检查创建新字符串时,代码并不完全有效。像这样的递归函数也会在输入足够长时抛出 StackOverflowError。

看看这个: Java: How do I count the number of occurrences of a char in a String?

关于java - 字符串索引越界错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7861500/

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