¿Cómo se puede validar una cadena en Java?

¿Cómo se puede validar una cadena en Java? Es decir, solo se permiten caracteres y no números? ¿Qué hay de la validación de correo electrónico?

¿Cómo se puede validar una cadena en java?

Una forma común de hacerlo es mediante una expresión regular o expresión regular. En Java puede usar el String.matches(String regex) . Con las expresiones regulares, decimos que coinciden una cadena con un patrón Si una coincidencia es exitosa, .matches() devuelve verdadero.


¿Sólo caracteres permitidos y no números?

 // You can use this pattern: String regex = "^[a-zA-Z]+$"; if (str.matches(regex)) { // ... } 

validación de correo electrónico?

Las direcciones de correo electrónico tienen una especificación muy complicada , que requiere una expresión regular monstruosa para ser precisa. Este es decente y corto, pero no exactamente correcto:

 String regex = "\\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[AZ]{2,4}\\b"; if (str.matches(regex)) { // ... } 

Si realmente quiere verlo: cómo validar el correo electrónico y comparar las expresiones regulares de validación de correo electrónico (PHP).


Aquí hay un excelente recurso para comenzar a usar expresiones regulares:
http://www.regular-expressions.info

para cuerdas con solo caracteres prueba

 private boolean verifyLastName(String lname) { lname = lname.trim(); if(lname == null || lname.equals("")) return false; if(!lname.matches("[a-zA-Z]*")) return false; return true; } 

para validación de correo electrónico intente

 private boolean verifyEmail(String email) { email = email.trim(); if(email == null || email.equals("")) return false; if(!email.matches("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$")) return false; return true; } 

Para casos simples como ese, vaya con RegExp como ya se sugirió NullUserException. Si necesita una solución más sólida, puede usar un marco de validación, es decir, Apache Commons Validator .

Si tiene Apache commons-lang como una dependencia de proyecto (y eso es bastante habitual), puede usar StringUtils.isAlpha() . Si tiene una validación más específica o no desea una dependencia de commons-lang, puede hacerlo con expresiones regulares y String.matches() .