所以我试图创建一个程序,在一个字符串中找到一个单词,或者基本上是一个单词中的单词。我的思考过程是检查每个子字符串是否与单词匹配,并使用递归来一次减少一个字符串。我花了很多时间在它上面,但它没有工作,我真的不明白为什么。请帮帮忙,我现在对此感到非常沮丧。
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;
}
答案 0 :(得分:1)
您的代码无法正常工作的原因是您忽略了递归调用的结果:
yodo(sentence.substring(1), wordy);
您应该在返回之前将其分配给result
,或者立即返回,并完全删除result
的声明。
此外,当false
超过wordy
时,您需要基本案例才能返回sentence
。否则,当sentence
变为空String
时,您的代码就会崩溃。
答案 1 :(得分:0)
首先,如果长度为0,则返回false。
其次,你需要返回yodo的值,而不是简单地调用它。
返回yodo(sentence.substring(1),wordy);
试一试。