【发布时间】:2015-11-28 14:08:31
【问题描述】:
我试图将用户输入的以辅音开头的字符串转换为 pig latin buy 将所有辅音移动到单词的末尾,直到单词以元音开头,然后在单词的末尾添加“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;
}
}
}
【问题讨论】:
-
并不是说这可以解决任何问题,但是:
if(condition){return true;}else{return false;}可以简化为return condition;。 -
使用 char 数组 (
myString.toCharArray()) 可能是直接使用字符串的更好方法。
标签: java if-statement for-loop while-loop