Este grupo redactor ha estado largas horas investigando respuestas a tu búsqueda, te regalamos la resolución por esto deseamos serte de mucha ayuda.
Solución:
Por un simple string comprobar, un solo barrido a través del string es suficiente. Dado que Regex no ofrecerá ningún beneficio significativo, aquí hay un bucle for simple para lograr lo mismo:
private static boolean checkString(String str)
char ch;
boolean capitalFlag = false;
boolean lowerCaseFlag = false;
boolean numberFlag = false;
for(int i=0;i < str.length();i++)
ch = str.charAt(i);
if( Character.isDigit(ch))
numberFlag = true;
else if (Character.isUpperCase(ch))
capitalFlag = true;
else if (Character.isLowerCase(ch))
lowerCaseFlag = true;
if(numberFlag && capitalFlag && lowerCaseFlag)
return true;
return false;
Prueba de funcionamiento:
System.out.println(checkString("aBCd1")); // output is true
System.out.println(checkString("abcd")); //output is false
Creo que esto debería ayudar al problema particular de OP.
Ejemplo de la respuesta de @ goshDeveloper.
Primero cree una variable de patrón con la expresión regular que desee.
public final Pattern textPattern = Pattern.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*\d).+$");
En segundo lugar, puedes usarlo así:
public boolean isTextValid(String textToCheck)
return textPattern.matcher(textToCheck).matches();
Prueba la expresión regular
^(?=.*[a-z])(?=.*[A-Z])(?=.*d).+$
descriptions are as follow
(?=.*[a-z]) -- check lower case letter
(?=.*[A-Z]) -- check upper case letter
(?=.*d) -- check one digit exists
Aquí tienes las comentarios y calificaciones
Si te animas, tienes la opción de dejar un tutorial acerca de qué le añadirías a esta noticia.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)