para generar codigos clave caracteres arreglo alfanumericos alfanumerico aleatorios aleatorio aleatoria java string character alphanumeric

java - generar - ¿Cómo determinar si una Cadena tiene caracteres no alfanuméricos?



random en java para string (7)

Necesito un método que pueda decirme si una Cadena tiene caracteres no alfanuméricos.

Por ejemplo, si la cadena es "abcdef?" o "abcdefà", el método debe devolver verdadero.


Debes revisar cada caracter en la Cadena y verificar Character.isDigit(char); o Character.isletter(char);

Alternativamente, puede usar expresiones regulares.


Puede utilizar el método isLetter (char c) estático de la clase Character en Java.lang.

public boolean isAlpha(String s) { char[] charArr = s.toCharArray(); for(char c : charArr) { if(!Character.isLetter(c)) { return false; } } return true; }


Si puede utilizar la biblioteca de Apache Commons, Commons-Lang StringUtils tiene un método llamado isAlphanumeric() que hace lo que está buscando.


Un enfoque es hacer eso usando la clase String en sí misma. Digamos que su cadena es algo así:

String s = "some text"; boolean hasNonAlpha = s.matches("^.*[^a-zA-Z0-9 ].*$");

otro es usar una biblioteca externa, como Apache commons:

String s = "some text"; boolean hasNonAlpha = !StringUtils.isAlphanumeric(s);


Usando Apache Commons Lang:

!StringUtils.isAlphanumeric(String)

Alternativamente iterar sobre los caracteres de String y verificar con:

!Character.isLetterOrDigit(char)

Aún le queda un problema: su cadena de ejemplo "abcdefà" es alfanumérica, ya que à es una letra. Pero creo que quieres que se lo considere no alfanumérico, ¿verdad?

Por lo tanto, es posible que desee utilizar expresiones regulares en su lugar:

String s = "abcdefà"; Pattern p = Pattern.compile("[^a-zA-Z0-9]"); boolean hasSpecialChar = p.matcher(s).find();


Use esta función para verificar si una cadena es alfanumérica:

public boolean isAlphanumeric(String str) { char[] charArray = str.toCharArray(); for(char c:charArray) { if (!Character.isLetterOrDigit(c)) return false; } return true; }

Ahorra tener que importar bibliotecas externas y el código puede modificarse fácilmente en caso de que posteriormente desee realizar diferentes comprobaciones de validación en cadenas.


string.matches("^//W*$"); debe hacer lo que quiera, pero no incluye espacios en blanco. string.matches("^(?://W|//s)*$"); no coincide con el espacio en blanco también.