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.
The java. lang. Character. isUpperCase(char ch) determines if the specified character is an uppercase character.
To check whether a character is in Uppercase or not in Java, use the Character. isUpperCase() method.
To check whether a character is in Lowercase or not in Java, use the Character. isLowerCase() method.
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.
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(); } If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With