java.lang.StringIndexOutOfBoundsException

Ray262

Mitglied
Moin,

Ich bin ein blutiger Java Anfänger und habe mich bei einer Hausaufgabe aktuell an einem Compiler Fehler aufgehangen, der durch folgende for Schleife entsteht:

Java:
for (int m=1;m<31;m++) {
    System.out.println("Platieren Sie alle Schiffe");
    System.out.println("Platzieren Sie 4 U-Boote(2 Kaestchen), 3 Zerstoerer(3 Kaestchen), 2 Kreuzer(4 Kaestchen), 1 Schlachtschiff(5 Kaestchen)");
    System.out.println("Zeile [A-J]");
    String i = scanner.nextLine();
    char j = i.charAt(0);
    int a = Character.getNumericValue(j);
    int zeile = a-10;
    System.out.println("Spalte [0-9]");
    int spalte = scanner.nextInt();
    playerschiffe[zeile][spalte] = '#';
    System.out.println("deine schiffe");
    print(playerschiffe);
    System.out.println("gegnerische schiffe");
    print(gegnerschiffe);
    System.out.println();   
   
}

Wie man hoffentlich sieht, soll 30 mal diese Schleife durchlaufen werden, damit schlussendlich 30 # bzw. Schiffsteile gesetzt sind. Ich weiß, dass ist vielleicht nicht die beste und schönste Lösung, aber ich denke sie sollte funktionieren und ist aktuell das einzige was mir zur Problemlösung eingefallen ist.

Allerdings wird beim compilieren folgender Fehler ausgegeben:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.lang.String.charAt(String.java:658)

Ich hoffe meine Erklärungen reichen, damit ihr was damit anfangen könnt 😕
 
ich bezweifel das der fehler beim kompilieren auftritt. sondern während der Ausführung. Wenn du einfach eine leere Zeile eingibst, hat dein String i eine Länge von 0. Und dementsprechend führt i.charAt(0) zu der Fehlermeldung, da der string komplett leer ist
 

Neue Themen


Zurück
Oben