我试图转换一个用户输入的字符串,以辅音开始Pig拉丁购买移动所有的辅音到单词的末尾,直到单词以元音开始,然后添加“ay”到单词的末尾。我有一个for循环应该这样做,但由于某种原因,它没有输出任何东西。我做错了什么?我被难住了。
代码如下:
import java.util.Scanner;
public class two {
public static void main(String[] args) {
System.out.println("Please enter a word");
Scanner word = new Scanner(System.in);
String pigLatin = word.nextLine();
while (!pigLatin.equalsIgnoreCase("quit")) {
if (isVowel(pigLatin.charAt(0))) {
pigLatin = (pigLatin + "way");
System.out.println(pigLatin);
}
else {
for (int i = 0; i < pigLatin.length(); i++) {
char firstChar = pigLatin.charAt(0);
pigLatin = pigLatin.substring(1);
pigLatin = pigLatin + firstChar;
if (i >= pigLatin.length())
{
pigLatin = pigLatin + "ay";
System.out.println(pigLatin);
}
}
}
System.out.println("Please enter a word");
pigLatin = word.nextLine();
}
word.close();
}
private static boolean isVowel(char ch) {
char v = Character.toLowerCase(ch);
if (v == 'a' || v == 'e' || v == 'i' || v == 'o' || v == 'u') {
return true;
}
else {
return false;
}
}
}
3条答案
按热度按时间8yparm6h1#
在i上需要一个小于或等于<=,否则i永远不会大于或等于pigLatin. length()。
cwtwac6a2#
你的for循环条件是
你说如果
所以这个条件永远不会为真,因为没有输出,
参见下面的代码,
以下是一些输入:
它们的输出是:
relj7zay3#
import java.util.Scanner;
public class two { public static void main(String[] args){
}