因此,尝试创建一个遍历字符串并检查每个char元音的方法。
然而,当它到达终点并进行前锋检查时。我得到一个超出约束异常的字符串。我尝试为前面的char添加一个空格检查,但仍然得到例外。
for (char i = 0; i < buffer.length; i++) {
if (isVowel(key.charAt(i + 1)) && !Character.isWhitespace(key.charAt(i + 1)) {
buffer[i] = key.charAt(i);
} else {
break;
}
}
答案 0 :(得分:0)
创建正确大小的缓冲区,如
char[] keyChar = key.toCharArray();
char[] buffer = new char[keyChar.length]; //same size
然后,迭代密钥,而不是缓冲区
for(int i = 0; i < keyChar.length -1; ++i)
由于你在逻辑中使用[i + 1],所以不要走到最后。
请注意,这将忽略最后一个字符,您必须查看是否需要缓冲区中的最后一个字符。如果是这样,你需要添加它(显然没有检查下一个)
答案 1 :(得分:-1)
for (char i = 0; i < buffer.length-1; i++) {
if (isVowel(key.charAt(i + 1)) && !key.charAt(i + 1) && !Character.isWhitespace(key.charAt(i + 1)) {
buffer[i] = key.charAt(i);
} else {
break;
}
}