2009-12-24 12 views
16

No sé lo que está mal con el código siguiente ... Recibo información de un cuadro de texto y pongo la entrada en una cadena. Si el cuadro de texto está vacío, devolverá una cadena vacía. En el siguiente códigoComprobación de cadenas vacías en 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); 
     } 
    } 

en el código anterior str[i] almacena el texto de entrada de los cuadros de texto y yo estoy tratando de comprobar si cualquier elemento de la matriz está vacía. También probé con str[i] == "" y str[i] == null pero no tuve suerte. La instrucción dentro del bloque if si estoy imprimiendo la cadena str[i], no muestra nada que indique que está vacía.

¿Estoy haciendo algo de la manera incorrecta?

+1

¿Qué es lo que estás tratando de verificar? Verifica si la cadena está vacía y luego realiza una impresión, y el resultado como dices es algo así como "establecer" + ... ya que no puedes ver una cadena vacía :). Probablemente quiera probar la condición no: es decir, si (! Str [i] .equals ("")) .. – sateesh

+0

Verdaderamente, verificación simple si() condición ... – ThinkJet

+0

¿Cree que podría editar su pregunta para hacerlo más entendible? De los comentarios y respuestas, puedo ver que no soy el único que no está seguro de lo que realmente quieres ... :-( – KLE

Respuesta

27

Usted podría intentar:

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

funcionó para mí .... Muchas gracias .. –

+1

Esto no es Javascript. – vivek

0

El código anterior sólo se ejecuta si la cadena está vacía, es que el comportamiento deseado? También declarar str como nuevo justo antes del bucle prácticamente garantiza que estará vacío.

Si está tratando de asignar los valores de las cajas de texto, necesitará tener esas asignaciones en algún lugar antes del bucle.

15

Puede utilizar el Apache Commons Lang para comprobar una cadena:

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

StringUtils.isBlank es comprobar si la cadena es null o vacío (es decir, si es igual a "" cuando se eliminan todos los caracteres en blanco).

+0

¿Qué sucede si alguien acaba de ingresar al espacio? – Jony

+1

@AshishDonvir 'StringUtils.isBlank (" ")' devuelve 'true'. Si desea que esta prueba devuelva 'false', puede usar' StringUtils.isEmpty (...) 'en su lugar. – romaintaz

0

en realidad trató de ejecutar el fragmento de código y obtuve una NullPointerException en su condición

str [i] .equals ("")

str [i] == null trabajado para yo. ¿Estás seguro de haber puesto el código correcto en tu pregunta? Parece extraño probar una cadena vacía de una matriz vacía que acaba de inicializar.

0

Una solución muy simple puede ser así.

if(str[] != null && !str[].equals("")) 
Cuestiones relacionadas