私の割り当ては、ユーザー入力の単語に母音がない場合は "ay"が最後に追加され、母音で始まる場合は "yay"が末尾に追加され、それ以外の場合は "yy"これらの条件のうち最初の文字が単語の最後に移動し、「ay」が末尾に追加されます。私は最後の条件を働かせるようには見えません。たとえば、 "sad"という単語は "adsay"を出力するはずですが、代わりに "saday"を出力します。これは、別のif文を読み込んで受け入れることを意味します。私はいくつかのソリューションを調べようとしましたが、私が得たものはすべてループであり、この特定の割り当てのループを避けたいと思います。ここに私のコードは次のとおりです。ループを使用せずに文字列内の文字を検索するにはどうすればよいですか?
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Word: ");
String word = in.nextLine();
int length = word.length();
String word1 = "";
if (word.charAt(0) == 'a' || word.charAt(0) == 'e' || word.charAt(0) == 'i' || word.charAt(0) == 'o' || word.charAt(0) == 'u')
{
word1 = pigLatin(word);
System.out.println("Pig Latin: " + word1);
}
else if (word.indexOf("a") == -1 || word.indexOf("e") == -1 || word.indexOf("i") == -1 || word.indexOf("o") == -1 || word.indexOf("u") == -1)
{
word1 = pigLatin1(word);
System.out.println("Pig Latin: " + word1);
}
else
{
word1 = pigLatin2(word);
System.out.println("Pig Latin: " + word1);
}
}
static String pigLatin(String word)
{
String x = word + "yay";
return x;
}
static String pigLatin1(String word)
{
String x = word + "ay";
return x;
}
static String pigLatin2(String word)
{
char firstLetter = word.charAt(0);
String x = word.substring(1, word.length()) + firstLetter + "ay";
return x;
}
}
スタート: '場合(hasNoVowel(ワード)){...}であれば、他の(startsWithVowel(ワード)){...} else {...} '。 –