Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I check if a Java String contains at least one capital letter, lowercase letter, and number?

Tags:

java

string

I know that I could do this with a series of for loops that iterate through the string but that would be terrible programming. Well, my professor prefers I don't do it this way. I'd like to use regular expressions to do this.

like image 705
Michael Drum Avatar asked Oct 31 '16 03:10

Michael Drum


People also ask

How do you check if a string contains uppercase and lowercase and number in Java?

The java. lang. Character. isUpperCase(char ch) determines if the specified character is an uppercase character.

How do you know if a letter is uppercase or lowercase in Java?

To check whether a character is in Uppercase or not in Java, use the Character. isUpperCase() method.

How do you check if all letters in a string are lowercase in Java?

To check whether a character is in Lowercase or not in Java, use the Character. isLowerCase() method.


2 Answers

For a simple string check, a single sweep through the string is enough. Since Regex will not offer any significant benefit, here is a simple for loop to achieve the same :

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; } 

Test run:

System.out.println(checkString("aBCd1")); // output is true System.out.println(checkString("abcd")); //output is false 

I think this should help OP's particular problem.

like image 105
CyprUS Avatar answered Sep 24 '22 19:09

CyprUS


Example of @goshDeveloper's answer.

First create a Pattern variable with regular expression you want.

public final Pattern textPattern = Pattern.compile("^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d).+$"); 

Second you can use it like this:

public boolean isTextValid(String textToCheck) { return textPattern.matcher(textToCheck).matches(); } 
like image 34
Yhondri Avatar answered Sep 21 '22 19:09

Yhondri