if funktioniert nicht?!?!?

  • 2 Antworten
  • Letztes Antwortdatum
B

bandchef

Neues Mitglied
0
Hi Leute!

Ich hab hier folgenden Code:

Code:
String test = edittext1.getText().toString();
        if(test != "")
        {
            i_input = Integer.parseInt(edittext1.getText().toString());
            new MyAsyncTask().execute(i_input);
        }
        else
        {
            Toast.makeText(this, "Zahl > 0 eingeben!", Toast.LENGTH_LONG).show();
        }

Das Problem ist in der zweiten Zeile meines Codes. In der String Variable test wird der String gespeichert und in dem if abgeprüft. Wenn nun der EditText leer gelassen wird (was man eigentlich nicht soll!), geht der Debugger dennoch in den true-Pfad des ifs!
Wenn man was hineinschreibt in das EditText, dann steht in der String Variable auch der korrekte String und der Debugger wandert so wie er es eben auch soll in den true-Pfad.

Sprich: Ich weiß nicht warum der Code bei leerem String, also "", nicht in den else-Pfad springt!

Was mach ich falsch?
 
Ja weil test IMMER != "" ist.

Strings musst du mit equals vergleichen.
also
if ("".equals(test))
bzw !"".equals(test)

Erklärung:
== und != vergleichen auf Objekt ebene du hast aber 2 verschiedene Objekte einmal das String-Objekt test und dann noch ein anderes String-Objekt ohne namen "".

"" == "" dürfte übrigens funktionieren, da Java intern für alle Strings die direkt im Code stehen ein Objekt anlegt, somit wären in dem Fall beide Strings die gleichen Objekte.
 
Super! Das war's! Danke!
 

Ähnliche Themen

AnnaBauer21
Antworten
0
Aufrufe
488
AnnaBauer21
AnnaBauer21
AnnaBauer21
Antworten
6
Aufrufe
989
AnnaBauer21
AnnaBauer21
Zurück
Oben Unten