Also ich ein Programm zu machen, versuche, die ein Wort in einem String findet, oder im Grunde ein Wort innerhalb eines Wortes. Mein Denkprozess besteht darin, zu überprüfen, ob jeder Teilstring mit dem Wort übereinstimmt, und Rekursion zu verwenden, um den String um jeweils ein Zeichen zu reduzieren. Ich habe viel Zeit darauf verbracht, aber es funktioniert nicht und ich verstehe wirklich nicht warum. Bitte helfen Sie mir, ich war wirklich schon eine Weile frustriert.Warum funktioniert der Rekursionscode nicht richtig? [Geschlossen!]
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;
}
Das Ergebnis 'Yodo (sentence.substring (1), wortreich);' ignoriert. –
'return same.contains (word);' –
Warum sollten Sie der Variablen Parameter zuweisen, es sei denn, Sie möchten sie ändern? --- Wofür wird senLength verwendet? --- '(sentence_string (0, wordLength)). equals (wordy)' ist das gleiche wie 'sentence.startsWith (wordy)', was kürzer und viel klarer ist, was es tut. --- Und wie andere gesagt haben, sollten Sie den Rückgabewert des rekursiven Aufrufs verwenden. – Andreas