2010-09-17 9 views
6

¿Cómo se puede validar una cadena en Java? Es decir. solo los personajes están permitidos y no los números? ¿Qué hay de validación de correo electrónico?¿Cómo se puede validar una cadena en Java?

+4

Puede consultar las expresiones regulares: http://download.oracle.com/javase/tutorial/essential/regex/ – MatrixFrog

Respuesta

5

de cadena con sólo personajes intentan

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 la validación de correo electrónico Trate

private boolean verifyEmail(String email) 
{ 
    email = email.trim(); 

    if(email == null || email.equals("")) 
     return false; 

    if(!email.matches("^[a-zA-Z0-9._%+-][email protected][a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$")) 
     return false; 

    return true; 
} 
+1

No tiene sentido buscar una cadena vacía o recortarla porque puede ocuparse de las que tienen regex – NullUserException

+0

Estoy de acuerdo con NUE – jsshah

+0

el 'ajuste' debe hacerse DESPUÉS de la comprobación nula ... o de lo contrario lanzará NullPointerException ... – st0le

7

cómo una cadena puede ser validado en Java?

Una forma común de hacerlo es mediante el uso de expresiones regulares o Expresión regular. En Java puede usar el método String.matches(String regex). Con expresiones regulares decimos que coincide con una cadena en un patrón Si una coincidencia es exitosa, .matches() devuelve verdadero.


solamente caracteres permitidos y no los 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 un very complicated spec, que requiere una expresión regular monstruosa para ser preciso. Éste es decente y corto, pero no exactamente a la derecha:

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

Si realmente quiere ver en él: How to validate email y Comparing email validating regexes (PHP).


Aquí es un excelente recurso para empezar a trabajar en expresiones regulares:
http://www.regular-expressions.info

4

Para los casos simples como esas, ve con RegExp como ya se ha sugerido NullUserException. Si necesita una solución más robusta, puede usar algún marco de validación, es decir, Apache Commons Validator.

Cuestiones relacionadas