检查下一个字符是否是数组的末尾 - java
问题描述:
因此,试图创建一个方法,该方法检查字符串并检查每个元音的元音。检查下一个字符是否是数组的末尾 - java
然而,当它到达最后并对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;
}
}
答
创建像
char[] keyChar = key.toCharArray();
char[] buffer = new char[keyChar.length]; //same size
的正确尺寸的缓冲之后,反复运用关键,而不是缓冲
for(int i = 0; i < keyChar.length -1; ++i)
不要去年底以来你在逻辑中使用[i + 1]。
请注意,这将忽略最后一个字符,您必须查看是否需要最后一个字符或不在缓冲区中。如果是这样,你将需要添加它(显然,没有你的下一个检查)
+1
谢谢!我只是分开了最后一个字符的逻辑以及如何处理它。 – Matchbox2093
答
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;
}
}
+2
由于与注释中指出的相同的原因,不会编译。 –
你为什么不使用字符串?对于数组,您总是需要记住它们的长度,并在阵列末尾使用它来“知道”。 –
你为什么要检查'i + 1'而不只是'i'? –
您应该运行循环直到'i