gpt4 book ai didi

java - 为什么递归代码不能正常工作? [关闭!]

转载 作者:行者123 更新时间:2023-12-01 10:10:56 25 4
gpt4 key购买 nike

所以我正在尝试制作一个程序来查找字符串中的单词,或者基本上是单词中的单词。我的思考过程是检查每个子字符串是否与单词匹配,并使用递归一次删除字符串一个字符。我花了很多时间,但它不起作用,我真的不明白为什么。请帮忙,我已经为此感到非常沮丧有一段时间了。

public static boolean yodo(String sen, String word)
{
String sentence = sen;
String wordy = word;
int wordLength = word.length();
int senLength = sentence.length();

boolean result = false;

if ((sentence.substring(0, wordLength)).equals(wordy))
{
result = true;
}
else
{

yodo(sentence.substring(1), wordy);
}

return result;


}

最佳答案

您的代码无法正常工作的原因是您忽略了递归调用的结果:

yodo(sentence.substring(1), wordy);

您应该在返回之前将其分配给 result,或者立即返回,并完全删除 result 的声明。

此外,当 wordy 长于 sentence 时,您需要一个基本情况来返回 false。否则,当 sentence 变成空的 String 时,您的代码必然会崩溃。

关于java - 为什么递归代码不能正常工作? [关闭!],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121855/

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