Vergleiche mit charAt funktioniert bei Strings nicht, was tun?

Diskutiere Vergleiche mit charAt funktioniert bei Strings nicht, was tun? im Java Basics - Anfänger-Themen Forum; [ATTACH] public static void main(String[] args) { Scanner scanner = new Scanner (System.in); String eingabeText =...

  1. upload_2019-2-13_17-54-58.png

    Code (Java):

        public static void main(String[] args) {
            Scanner scanner = new Scanner (System.in);
           
            String eingabeText = scanner.nextLine();
           
            String zuErsZeichen = scanner.nextLine();
           
            String eingNeueZeichen = scanner.nextLine();
           
            String veraenderterText = "";
           
            String bisher = "";
           
            for (int i = 0; i <= eingabeText.length(); i++) {
                if (eingabeText.charAt(i) == zuErsZeichen.charAt(i)) {
                    bisher += eingNeueZeichen + eingabeText.substring(i+1, eingabeText.length());
                   
                }
            }
            System.out.println(bisher);
            scanner.close();
        }

    }
     
    Mein bisheriger Code würde nur beim Ersetzen von einzelnen Zeichen funktionieren (ich versuche noch, es mit mehreren Zeichen hinzukriegen). Aber das Problem ist, dass ich einen Fehler bekomme wenn ich mit charAt vergleiche.
    Konsole:
    Hallo
    a
    u
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 1
    at java.base/java.lang.StringLatin1.charAt(Unknown Source)
    at java.base/java.lang.String.charAt(Unknown Source)
    at Texttt.main(Texttt.java:19)
     
  2. Vielleicht hilft dir dieser Kurs hier weiter.
  3. httpdigest
    httpdigest Bekanntes Mitglied
    Das Problem ist aktuell, dass du in der Schleife annimmst, dass die Zeichenkette `zuErsZeichen` genauso lang ist wie der `eingabeText`, da du die Schleife über `eingabeText.length()` definierst und für jedes `i` sowohl auf `eingabeText` als auch auf `zuErsZeichen` an der Stelle `i` zugreifst.
     
  4. Code (Java):

           
            for (int i = 0; i <= eingabeText.length(); i++) {
                if (zuErsZeichen.equals(eingabeText.charAt(i))) {
                    bisher += eingNeueZeichen + eingabeText.substring(i+1, eingabeText.length());
                    System.out.println(bisher);
     
    Klappt leider auch nicht
    "

    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 5
    at java.base/java.lang.StringLatin1.charAt(Unknown Source)
    at java.base/java.lang.String.charAt(Unknown Source)
    at Texttt.main(Texttt.java:19)
    "
    ne idee?
     
  5. httpdigest
    httpdigest Bekanntes Mitglied
    i < eingabeText.length()
     
  6. Jetzt gebe ich alles ein, aber ich kriege KEINE Ausgabe. Die Konsole sagt "<terminated>" oben, aber mehr auch nicht
     
  7. krgewb
    krgewb Aktives Mitglied
    Du schreibst:
    Code (Java):
    if (zuErsZeichen.equals(eingabeText.charAt(i))) {
    Damit es funktioniert, musst du es wie folgt schreiben:
    Code (Java):
    if (zuErsZeichen.equals("" + eingabeText.charAt(i))) {
     
  8. Wenn du Java lernen möchtest, empfehlen wir dir diesen Kurs hier
Passende Stellenanzeigen aus deiner Region:





Die Seite wird geladen...

Vergleiche mit charAt funktioniert bei Strings nicht, was tun? - Ähnliche Themen

Stringinhalte mit CharAt vergleichen
Stringinhalte mit CharAt vergleichen im Forum Java Basics - Anfänger-Themen
Objekte in Array vergleichen
Objekte in Array vergleichen im Forum Java Basics - Anfänger-Themen
wav Dateien vergleichen
wav Dateien vergleichen im Forum Spiele- und Multimedia-Programmierung
mp3 vergleichen
mp3 vergleichen im Forum Spiele- und Multimedia-Programmierung
2 Textdateien mit einander vergleichen
2 Textdateien mit einander vergleichen im Forum Java Basics - Anfänger-Themen
Thema: Vergleiche mit charAt funktioniert bei Strings nicht, was tun?