我正在研究一种将拉丁语翻译成猪拉丁语的翻译器。这里是拉丁方法和isVowel方法。明胶翻译器java
public static void pigLatin(String s) {
char[] array = s.trim().toCharArray();
if(isVowel(s.charAt(0)) && !Character.toString(s.charAt(0)).equalsIgnoreCase("y")){
System.out.println(s+"way");
}else {
int i = 0;
String toReturn = "";
do {
toReturn += array[i];
i++;
}while(!isVowel(s.charAt(i)) && !Character.toString(array[i]).equalsIgnoreCase("y"));
System.out.println(s.substring(i)+toReturn+"ay");
}
}
public static boolean isVowel(char c) {
char[] vowels = new char[] {'a','e','i','o','u','y'};
for(int i = 0;i<vowels.length;i++) {
if(Character.toString(vowels[i]).equalsIgnoreCase(Character.toString(c))) {
return true;
}
}
return false;
}
问题是当我输入单词“BIDR”和“安静”。第一个投掷java.lang.StringIndexOutOfBoundsException: String index out of range: 4
第二个不能正确转换。安静的印刷uietqay,当它认为是静音时,但这是没有意义的,因为,你应该把所有的常数都取到元音,这应该意味着uietquay,那么为什么它是静音?有人能指点我正确的方向吗?
注意:这不是家庭作业。
*安静打印uietqay,当它假设是ietquay,但没有任何意义,因为,你应该采取高达元音,这应该意味着uietquay那么为什么ietquay所有的常量?* **嗯?**你问*我们*教你明胶的规则吗?在请求帮助使程序符合要求之前,牢牢掌握您的要求。我们不是在这里给你的要求。 – 2011-12-13 17:54:12
我只是向你解释发生了什么......我知道需求是什么。我在我的评论中清楚地显示了他们,“你应该把所有常数都加到元音之上”。 – 2011-12-13 18:00:20
如果你“应该把所有的常量都归到元音中”,你为什么还会说,“它认为[原文如此]是ietquay”?这两种说法是相互排斥的。他们不可能都是真实的。关于该段没有任何“明确的”。 – 2011-12-13 18:05:37