2017-06-27 123 views
-1

我得到了錯誤:異常線程 「main」 java.lang.StringIndexOutOfBoundsException:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1 at java.lang.String.charAt(String.java:658) at javaapplication1.JavaApplication1.main(JavaApplication1.java:49) /home/panda/.cache/netbeans/8.2/executor-snippets/run.xml:53: Java returned: 1

對於下面的程序。這裏Names是一個字符串數組。

for (int i = 0; i < n; i++) 
    { 
     for (int j = i + 1; j < n; j++) 
     { 
      if(names[i].charAt(1) == names[j].charAt(1)) 
      { 
       if ((names[i].substring(2)).compareTo((names[j].substring(2)))>0) 
        { 
         temp = names[i]; 
         names[i] = names[j]; 
         names[j] = temp; 
        } 
      } 
     } 
    } 
+0

你的問題沒有錯誤,只是代碼。 – tadman

+0

charAt。案件事宜。 :) – Dewick47

+0

謝謝@ Dewick47!該死的我是這樣一個noobie –

回答

-1

您有一個錯誤消息: https://docs.oracle.com/javase/7/docs/api/java/lang/StringIndexOutOfBoundsException.html

用於起動器,字符串是字符數組。與其他任何數組一樣,如果您嘗試訪問負數索引或大於實際數組大小的索引,您將得到一個「OutOfBound」異常。另請注意,數組是基於0的索引。

針對您的特定問題,正如@Kirill Ch的評論中所述,我會設置一個斷點並找到您嘗試訪問超出限制的索引的位置。它取決於名稱中的數據[] array

希望它有幫助

相關問題