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.
Advertisement
Answer
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.