检查下一个字符是否是数组的末尾 - java
Check that the next char is end of array - java
因此尝试创建一个遍历字符串并检查每个字符的元音的方法。
然而,当它到达末尾并对字符进行前向检查时。我得到一个字符串越界异常。我尝试为前面的字符添加空格检查,但仍然出现异常。
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;
}
}
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;
}
}
创建正确大小的缓冲区,如
char[] keyChar = key.toCharArray();
char[] buffer = new char[keyChar.length]; //same size
然后,迭代键,而不是缓冲区
for(int i = 0; i < keyChar.length -1; ++i)
不要走到最后,因为你在逻辑中使用了 [i + 1]。
请注意,这将忽略最后一个字符,您必须查看缓冲区中是否需要最后一个字符。如果是这样,您将需要添加它(显然没有检查下一个)
因此尝试创建一个遍历字符串并检查每个字符的元音的方法。
然而,当它到达末尾并对字符进行前向检查时。我得到一个字符串越界异常。我尝试为前面的字符添加空格检查,但仍然出现异常。
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;
}
}
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;
}
}
创建正确大小的缓冲区,如
char[] keyChar = key.toCharArray();
char[] buffer = new char[keyChar.length]; //same size
然后,迭代键,而不是缓冲区
for(int i = 0; i < keyChar.length -1; ++i)
不要走到最后,因为你在逻辑中使用了 [i + 1]。
请注意,这将忽略最后一个字符,您必须查看缓冲区中是否需要最后一个字符。如果是这样,您将需要添加它(显然没有检查下一个)