ここでは、文字列を個別の単語に分割し"ay"
、母音が含まれている場合は各単語の末尾に追加しますが、最後の単語に到達すると if ステートメントによって自動的にスキップされるという問題がindexOf
あり-1
ます。これを修正するために追加しようとしif (i ==-1)
ましたが、デバッガーでステップスルーすると、この if ステートメントが自動的にスキップされます! 理由を知っている人はいますか?そして、この問題を回避"ay"
し、最後の単語に追加するにはどうすればよいですか?.indexOf is -1
方法:
public static void pigLatin(String sentence){
sentence = sentence.trim();
if(sentence.length()> 0){
int i = sentence.indexOf(" ");
String word = sentence.substring(0, i);
if(i == -1){ //this if statement is ignored
if (word.contains("a") || word.contains("i") || word.contains("o") || word.contains("e") || word.contains("u")){
System.out.println(word + "ay");
} else{
System.out.println(word);
}
}
if(i != -1){
if(word.contains("a") || word.contains("i") || word.contains("o") || word.contains("e") || word.contains("u")){
System.out.println(word + "ay");
pigLatin(sentence.substring(i));
} else if(!word.contains("a") || !word.contains("i") || !word.contains("o") || !word.contains("e") || !word.contains("u")){
System.out.println(word);
pigLatin(sentence.substring(i));
}
}
}
}
主要:
public class Main {
public static void main (String [] args){
Scanner in = new Scanner(System.in);
String word = in.nextLine();
Functions.pigLatin(word);
}
}