检查下一个char是数组的结尾 - java

时间:2017-06-09 09:59:44

标签: java buffer

因此,尝试创建一个遍历字符串并检查每个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;
                }
            }

2 个答案:

答案 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;
            }
        }