- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 pig 拉丁语翻译器,它将给定的单词翻译成 pig 拉丁语。这里是pig Latin 方法和isVowel 方法。
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;
}
问题是当我输入单词“BIrD”和“quiet”时。第一个抛出 java.lang.StringIndexOutOfBoundsException: String index out of range: 4
第二个无法正确转换。 Quiet 打印 uietqay,当它应该是 ietquay 时,但这没有意义,因为,你应该将所有常量都取到元音,这应该意味着 uietquay 那么为什么它是 ietquay?有人可以指出我正确的方向吗?
注意:这不是家庭作业。
最佳答案
忽略大小写,这是“BLRD”还是“bird”?因为如果它没有元音,你的 do-while 循环不会终止,除非超出范围。
你的第二种情况,“quiet”应该是“uietqay”,除非你想添加特殊逻辑来将“qu”保持在一起。您可以在 while 条件下通过使其变得更丑来实现此目的:
while( (!isVowel(s.charAt(i)) || isQU(s, i)) && !Character.toString(array[i]).equalsIgnoreCase("y"))
然后实现适当的isQU(String s, int index)
。
但我建议多进行一点重写,以使代码更具可读性。事实上,我不太确定为什么你的 isVowel
检查“y”并且你的 while 条件也检查“y”。有时您使用array[i]
,有时您使用charAt(i)
。这种不一致使您的代码更难阅读,但几乎没有任何好处。
关于java - pig 拉丁翻译器java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8493617/
我对UDF pig 拉丁有问题。 我正在尝试实现一个系统,该系统必须验证本地存储的矩阵与hadoop存储库中存储的一组矩阵之间是否存在“映射”。 对于映射,我的意思是在hadoop中是否存在一个存储矩
数据库的排序规则用法是什么?好吧,对于 HTML UTF-8,我知道一点,比如显示其他语言类型。但是对于数据库呢?我正在使用 latin-1(默认),我的 friend 告诉我改用 UTF。当我问为什
我有以下带有架构的数据 (t0: chararray,t1: int,t2: int) (B,4,2) (A,2,3) (A,3,2) (B,2,2) (A,1,2) (B,1,2) 我想生成以下结果
我正在尝试构建 AOSP 拉丁 IME(源代码:https://android.googlesource.com/platform/packages/inputmethods/LatinIME/+/m
我正在实现过滤器功能。我使用以下方法定义字符串是否适合查询: someString.IndexOf(someSearch, StringComparison.OrdinalIgnoreCase) >=
我是一名优秀的程序员,十分优秀!