String equals Problem

schguckemal

Mitglied
Java:
   public static void main(String[] args) {
        // TODO code application logic here
        //Beginn des Programms
       System.out.println("Geben Sie mindestens 1 Zeichen ein:");
      
       String zeichen; //String für die Eingabe
       int gesamt; //Zähler für alle Zeichen im String

       
       zeichen = Input.readString();
      if (zeichen.equals("")) {
           System.out.println("Sie haben kein Zeichen eingegeben.\nDas Programm wird beendet.");
       }
       else {
           gesamt = zeichen.length()-1;
           //System.out.println("Ausgabe: " + zeichen);
           System.out.println("Sie haben " + gesamt +" Zeichen eingegeben");
      
       }
               
       }
       
    }

Wenn ich einfach nur Enter drücke, also nichts eingebe, springt er trotzdem zum else-Zweig.
Wer findet den Fehler?
 
Zuletzt bearbeitet:

schguckemal

Mitglied
Sorry, das mit dem 1er stammte noch von einem Test. Jetzt stimmts. [JAVA=11]Zeile 11 wurde jetzt angepasst[/code]

Bei dem Code, den du noch gesehen hast, hat es übrigens mit 1 auch nicht funktioniert :)
 
Zuletzt bearbeitet:

tfa

Top Contributor
Dann müsste man wissen, was Input.readString() macht. Vielleicht wird ja ein Zeilenvorschub an den String gehängt. Lass dir zeichen halt mal ausgeben oder schau es dir im Debugger an.
 

schguckemal

Mitglied
Input.readString() lest einen String in eine variable.
danke für den tipp mit der ausgabe.

edit:
Ausgabe:
Java:
run:
Geben Sie mindestens 1 Zeichen ein:
test
Ausgabe:test

Sie haben 4 Zeichen eingegeben
BUILD SUCCESSFUL (total time: 2 seconds)

Ausgabe mit leerem String:
Java:
run:
Geben Sie mindestens 1 Zeichen ein:

Ausgabe:

Sie haben 0 Zeichen eingegeben
BUILD SUCCESSFUL (total time: 1 second)

Debugger liefert keine Fehler.
 
Zuletzt bearbeitet:
T

TheRealSpikee

Gast
Mit Scanner.nextString() steht \r\n im String wenn du einfach nur ENTER drückst.
Versuch es mal mit Scanner.nextLine()
 

Neue Themen


Oben