2013-10-19 97 views
-1

我想寫一個代碼來檢查一個字符串或字母或數字是否連續,但是每次運行該程序時,它都會返回一個錯誤:java.lang.ArrayIndexOutOfBoundsException: 4Java連續檢查器

林不知道是什麼問題,因爲我是相當新的編程,任何幫助將不勝感激。

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); 
    } 
} 

回答

4

你要做的:

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

因爲當環路是在最後執行的步驟和計算

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

然後inputArray[i+1]指的是出一個元素的數組邊界。