爪哇猪拉丁语(ranslatetay)代替(anslatetray)
如何使indexOfVowel方法为translate等字符串返回1?我需要它来找出元音前的所有辅音,然后移到末尾。如果我把“not元音”改为2,“translate”这个词应该是“anslatetray”,但它返回ranslatetay。它只检查第一个字母,不检查单词的其余部分
private String translateWord(String word) {
String translated = "";
int vowel = 0;
int notVowel = 1;
if (vowel == indexOfVowel(word)) {
return (word + "way ");
}
if (notVowel == indexOfVowel(word)) {
return (word.substring(1) + word.substring(vowel, 1) + "ay ");
}
return translated;
}
private static int indexOfVowel(String word) {
int index = 0;
for (int i = 0; i < word.length(); i++) {
if (isVowel(word.charAt(i))) {
return i;
}
}
return word.length();
}
private static boolean isVowel(char ch) {
switch (ch) {
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
return true;
default:
return false;
}
}
}
# 1 楼答案
我认为在任何情况下都不希望
indexOfVowel
返回1。你想让它做它听起来会做的事。。。返回传递给它的单词中第一个元音的索引。如果第一个元音恰好位于单词的开头,它将返回0,否则它将返回一个非0值,指示第一个元音的位置。你需要那个位置在其他地方做正确的事情。所以indexOfVowel
是正确的你的问题是你对
substring
方法的使用。。。了解如何使用它来选择目标词的正确部分下面是代码的一个修改版本,它做了正确的事情,带有注释来解释
substring
的两种用法:结果: