gpt4 book ai didi

java - 递归计算字符串java中的字符串

转载 作者:行者123 更新时间:2023-12-01 09:26:55 26 4
gpt4 key购买 nike

我应该递归地计算字符串中有多少个“XX”,如果双X前面有一个小x,则不应计算。我不确定我做错了什么;我似乎在第一次返回时就陷入了困境,我一直得到 0。

更新:我似乎一切正常,但 XXxXXX 一直被计为 1 而不是 2。

    public static int count(String s) {

if ((s.length() < 2))
return 0;
int counter = 0;
if (s.charAt(0)== 'x')
{
if (s.substring(0, 2).equals("xX"))
return count(s.substring(3));

}
if (s.substring(0, 2).equals("XX")) {
return 1 + count(s.substring(3));
}
else
return counter + count(s.substring(1));
}



public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner kb = new Scanner(System.in);
System.out.println("Enter a String: ");
String s = kb.nextLine();
System.out.println( count(s));
}

}

最佳答案

由于 substring 调用中的结束索引是独占,因此 substring(0, 1) 调用永远不会返回两个- 字符串;仅返回由第一个字符组成的字符串。

要获取两个字符,首先检查长度是否为两个或更多,然后调用 substring(0, 2)

关于java - 递归计算字符串java中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39759480/

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