課題の場合、再帰を使用して文の中で最も長い単語を見つけることになっています。文の最初の2つの単語を取得して比較し、次に2つのうち長い方の単語を取得して、それを文の残りの単語と比較するメソッドを作成しました。私のロジックはチェックアウトしますが、メソッドは正しく機能しません。スペースを奪うまぐれがあると思うので、動かないのです。
public static String longestWord(String sentence)
{
if (sentence.indexOf(' ') == -1) { // IF sentence only has one word
return sentence;
}
String word1 =(sentence.indexOf(" ") != -1)? sentence.substring(0, sentence.indexOf(" ")):
sentence.substring(0);
String temp = sentence.substring(sentence.indexOf(" ")+1);
String word2 = null;
String rest = null;
if (sentence.indexOf(" ") != -1) {
word2 = (temp.indexOf(" ") != -1)? temp.substring(0, temp.indexOf(" ")+1):
temp.substring(0);
rest = temp.substring(temp.indexOf(" ")+1);
}
if (word1.length() > word2.length()) {
return longestWord(word1 + rest);
}
if (word2.length() > word1.length()) {
return longestWord(word2 + rest);
}
return sentence;
}