Wie prüfe ich, ob meine Zeichenkette gleich Null ist?

Ich möchte eine Aktion NUR dann ausführen, wenn meine Zeichenfolge einen sinnvollen Wert hat. Also, ich habe dies versucht.

if (!myString.equals("")) {
doSomething
}

und dies

if (!myString.equals(null)) {
doSomething
}

und dies

if ( (!myString.equals("")) && (!myString.equals(null))) {
doSomething
}

und dies

if ( (!myString.equals("")) && (myString!=null)) {
doSomething
}

und dies

if ( myString.length()>0) {
doSomething
}

Und in allen Fällen macht mein Programm etwas trotz der Tatsache, dass mein String LEER ist. Sie ist gleich Null. Was ist also falsch daran?

HINZUFÜGEN:

Ich habe den Grund für das Problem gefunden. Die Variable wurde als String deklariert und als Folge davon wurde null, das dieser Variable zugewiesen wurde, in "null" umgewandelt! Also, if (!myString.equals("null")) funktioniert.

if (myString != null && !myString.isEmpty()) {
  // doSomething
}

Als weitere Anmerkung sollten Sie diesen Begriff im "Gleichheits"-Vertrag kennen:

Von Object.equals(Object):

Für jeden Referenzwert x, der nicht null ist, sollte x.equals(null) false zurückgeben.

Der Weg zum Vergleich mit null ist die Verwendung von x == null und x != null.

Außerdem werfen x.field und x.method() eine NullPointerException, wenn x == null ist.

Kommentare (4)

Sie müssen prüfen, ob das Objekt "myString" "null" ist:

if (myString != null) {
    doSomething
}
Kommentare (0)

Versuchen Sie es,

myString!=null && myString.length()>0
Kommentare (2)