vacios - validar cajas de texto en java netbeans
La mejor manera de verificar la cadena es vacĂa o nula (8)
Estoy seguro de que esto se debe haber preguntado antes de diferentes maneras, ya que isEmptyOrNull es tan común, pero la gente lo implementa de manera diferente. pero tengo una consulta por debajo en cuanto al mejor enfoque disponible, que es bueno para la memoria y el rendimiento.
1) A continuación no se tienen en cuenta todos los espacios, como en el caso de una etiqueta XML vacía
return inputString==null || inputString.length()==0;
2) Abajo uno se cuida, pero el recorte puede comer algo de rendimiento + memoria
return inputString==null || inputString.trim().length()==0;
3) Convertido al patrón de coincidencia (invocado solo cuando la cadena no es de longitud cero)
private static final Pattern p = Pattern.compile("//s+");
return inputString==null || inputString.length()==0 || p.matcher(inputString).matches();
4) ¿Alguna otra?
Simplemente y claramente:
if (str == null || str.trim().length() == 0) {
// str is empty
}
Apache Commons Lang tiene el StringUtils.isEmpty(String str)
que devuelve true si el argumento está vacío o nulo
En la mayoría de los casos, StringUtils.isBlank(str)
de la biblioteca de apache commons lo resolvería. Pero si hay un caso, donde la cadena de entrada que se está comprobando tiene un valor nulo dentro de las comillas, no puede verificar dichos casos.
Tome un ejemplo donde tengo un objeto de entrada que se convirtió en cadena usando String.valueOf(obj)
API. En caso de que la referencia obj sea nula, String.valueOf devuelve "nulo" en lugar de nulo.
Cuando intente usar StringUtils.isBlank("null")
, la API falla estrepitosamente, es posible que deba verificar dichos casos de uso para asegurarse de que su validación sea correcta.
Este de Google Guava podría revisar "Cadena vacía y nula" al mismo tiempo.
Strings.isNullOrEmpty("Your string.");
Añadir una dependencia con Maven.
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
con Gradle
dependencies {
compile ''com.google.guava:guava:20.0''
}
Método útil de Apache Commons:
org.apache.commons.lang.StringUtils.isBlank(String str)
Para detectar si una cadena es nula o está vacía, puede usar lo siguiente sin incluir ninguna dependencia externa en su proyecto y aún mantener su código simple / limpio:
if(myString==null || myString.isEmpty()){
//do something
}
o si los espacios en blanco también deben ser detectados:
if(myString==null || myString.trim().isEmpty()){
//do something
}
podría fácilmente incluirlos en métodos de utilidad para que sean más concisos, ya que estos son controles muy comunes:
public final class StringUtils{
private StringUtils() { }
public static bool isNullOrEmpty(string s){
if(s==null || s.isEmpty()){
return true;
}
return false;
}
public static bool isNullOrWhiteSpace(string s){
if(s==null || s.trim().isEmpty()){
return true
}
return false;
}
}
y luego llamar a estos métodos a través de:
if(StringUtils.isNullOrEmpty(myString)){...}
y
if(StringUtils.isNullOrWhiteSpace(myString)){...}
Solo para mostrar la postura de java 8 para eliminar valores nulos.
String s = Optional.ofNullable(myString).orElse("");
if (s.trim().isEmpty()) {
...
}
Tiene sentido si puedes usar la Optional<String>
.
Optional.ofNullable(label)
.map(String::trim)
.map(string -> !label.isEmpty)
.orElse(false)
O
TextUtils.isNotBlank(label);
La última solución comprobará si no es nulo y recortará el str al mismo tiempo