Hallo,
ich (Anfänger) habe die Aufgabe, alle Buchstaben 'a' aus einem String zu löschen. Dafür bin ich wie folgt vorgegangen:
Wenn ich den Code nun ausführe, bekomme ich nach dem Eingeben des Strings folgenden Fehler:
wobei die letzte Zahl der länge des Strings ohne den Buchstaben 'a' entspricht.
Dem Fehler nach heißt das, ich versuche den StringBuilder an einer ungültigen Stelle bearbeiten, aber dies passiert doch eigentlich gar nicht, oder?
ich (Anfänger) habe die Aufgabe, alle Buchstaben 'a' aus einem String zu löschen. Dafür bin ich wie folgt vorgegangen:
Java:
import javax.swing.JOptionPane;
public class Vokalloescher {
public static void main(String args[]) {
String eingabe = JOptionPane.showInputDialog("Bitte geben sie den zu bearbeitenden String ein:");
eingabe.toLowerCase(); //wandelt den zur leichteren Überprüfung String in Kleinbuchstaben um
StringBuilder bearb = new StringBuilder(eingabe); //erstellt einen StringBuilder mit gleichem Inhalt zur Bearbeitung
int counter = 0;
while(counter <= eingabe.length()) { //überprüft, ob das Ende des Strings ereicht wurde
if(bearb.charAt(counter) == 'a') { //überprüft, ob an der Stelle "Counter" ein 'a' steht
bearb.deleteCharAt(counter); //löscht das 'a' von der Stelle "Counter"
} else {
counter ++; //erhöht den Counter
}
}
System.out.println(bearb); //druckt den fertigen String ohne den Buchstaben 'a'
Code:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
Dem Fehler nach heißt das, ich versuche den StringBuilder an einer ungültigen Stelle bearbeiten, aber dies passiert doch eigentlich gar nicht, oder?
Zuletzt bearbeitet: