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