Java连续检查器

时间:2013-10-19 22:20:46

标签: java

我正在尝试编写一个代码,用于检查字符串或字母或数字是否连续,但每次运行程序时,它都不会给我任何回复,只会出现错误:java.lang.ArrayIndexOutOfBoundsException: 4

我不确定问题是什么,因为我对编程很新,任何帮助都会非常感激。

public class Question1
{
  public static void main(String[] args)
  {
    java.util.Scanner keyboardReader = new java.util.Scanner(System.in);
    String userInput = keyboardReader.nextLine();
    isConsecutive(userInput);
  }
  public static void isConsecutive(String s)
  {
    s = s.toUpperCase();
    int x = 0;
    char [] inputArray = s.toCharArray();
    for (int i=0; i<s.length(); i++)
    {
      if (Math.abs(inputArray[i] - inputArray[(i+1)]) != 1)
      {       
        System.out.println("false");
      }
      else
      {
        x++;
      }
    }
    System.out.println(x);
  }
}

1 个答案:

答案 0 :(得分:4)

你必须这样做:

for (int i=0; i < s.length() - 1; i++)

因为当循环处于最后一个执行步骤并计算

Math.abs(inputArray[i] - inputArray[(i+1)]) != 1

然后inputArray[i+1]指的是一个超出数组边界的元素。