2009-12-24 12 views
16

Ich weiß nicht, was mit dem folgenden Code falsch ist .... Ich bekomme die Eingabe von einem Textfeld und die Eingabe in eine Zeichenfolge. Wenn das Textfeld leer ist, wird eine leere Zeichenfolge zurückgegeben. Im folgenden CodePrüfe leere Zeichenfolge in Java

String[] str = new String[9]; 
    for(int i=0;i<9;i++){ 
     if(str[i].equals("")){ 
      System.out.println("set " + cmds[i] + " " + str[i]); 
      WriteThread.sendCommand("set " + cmds[i] + " " + str[i] + "\n", false); 
     } 
    } 

In dem obigen Code str[i] speichert die Eingabe von Text von Textbox und ich versuche, wenn jedes Element des Arrays zu überprüfen leer. Ich habe auch versucht mit str[i] == "" und str[i] == null aber kein Glück. Die Aussage innerhalb des if-Blocks, wenn ich die Zeichenkette str[i] drucke, zeigt es nichts, das bedeutet, dass es leer ist.

Mache ich irgendetwas falsch?

+1

Was möchten Sie überprüfen? Sie überprüfen, ob die Zeichenfolge leer ist und dann drucken, und das Ergebnis, wie Sie sagen, ist etwas wie "set" + ..., da Sie keine leere Zeichenfolge sehen können :). Wahrscheinlich willst du die nicht Bedingung testen: ie (! Str [i] .equals ("")) .. – sateesh

+0

Wirklich, einfach check if() Bedingung ... – ThinkJet

+0

Denkst du, du könntest deine Frage bearbeiten um es zu machen verständlicher? Von den Kommentaren und Antworten kann ich sehen, dass ich nicht der Einzige bin, der nicht sicher ist, was du wirklich willst ... :-( – KLE

Antwort

27

Sie könnten versuchen:

if (str[i] == null || str[i].trim().equals("")){ 
// your code 
} 
+2

es funktionierte für mich .... Vielen Dank .. –

+1

Dies ist kein Javascript. – vivek

0

Der obige Code wird nur ausgeführt, wenn die Zeichenfolge leer ist, ist, dass das gewünschte Verhalten? Auch wenn man str kurz vor der Schleife als neu deklariert, wird garantiert, dass es leer ist.

Wenn Sie versuchen, die Werte aus Textfeldern zuzuordnen, müssen Sie diese Zuweisungen irgendwo vor der Schleife haben.

15

Sie können die Apache Commons Lang verwenden, um einen String zu überprüfen:

if (StringUtils.isBlank(str[i]) { 
    ... 
} 

StringUtils.isBlank wird überprüft, ob der String null oder leer ist (das heißt, wenn es gleich zu "", wenn alle Leerzeichen entfernt werden).

+0

Was passiert, wenn jemand gerade den Weltraum betritt? – Jony

+1

@AshishDonvir 'StringUtils.isBlank (" ")' gibt 'true' zurück. Wenn Sie möchten, dass dieser Test "false" zurückgibt, können Sie stattdessen "StringUtils.isEmpty (...)" verwenden. – romaintaz

0

ich tatsächlich versucht, Ihren Code-Snippet und bekam einen Nullpointer auf bedingte

str [i] .equals ("")

str [i] == null arbeitete laufen mich. Sind Sie sicher, dass Sie den richtigen Code in Ihre Frage eingegeben haben? Es scheint seltsam zu sein, nach einer leeren Zeichenfolge eines leeren Arrays zu suchen, das Sie gerade initialisiert haben.

0

Eine sehr einfache Lösung kann so sein.

if(str[] != null && !str[].equals("")) 
Verwandte Themen