2017-06-27 7 views
-1

Ich habe den Fehler:Exception in thread "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

für das folgende Programm. Hier ist Names ein String-Array.

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

Es gibt keinen Fehler in Ihrer Frage, nur Code. – tadman

+0

charAt. Fall zählt. :) – Dewick47

+0

Thanks @ Dewick47! Verdammt, ich bin so ein Noobie –

Antwort

-1

Sie haben eine Fehlermeldung angezeigt: https://docs.oracle.com/javase/7/docs/api/java/lang/StringIndexOutOfBoundsException.html

Für Starter, A String ist ein Array von char. Wie jedes andere Array, wenn Sie versuchen, einen negativen Index oder einen Index größer als die Größe des tatsächlichen Arrays zuzugreifen erhalten Sie eine „OutOfBound“ Exception bekommen. Bitte beachten Sie auch, dass Array 0-Base-Index sind.

Für Ihr spezielles Problem, wie im Kommentar von @Kirill Ch erklärte ich einen Haltepunkt würde gesetzt und finden, wo Sie den Index zuzugreifen versuchen, die aus gebunden ist. Es hängt von den Daten in den Namen [] Array

Hoffe es half

Verwandte Themen