我知道我可以通过一系列for循环遍历字符串来实现这一点,但那将是糟糕的编程.好吧,我的教授更喜欢我不这样做.我想使用正则表达式来做到这一点.
解决方法:
对于简单的字符串检查,单个扫描字符串就足够了.由于Regex不会提供任何显着的好处,这里有一个简单的for循环来实现相同的目的:
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;
}
测试运行:
System.out.println(checkString("aBCd1")); // output is true
System.out.println(checkString("abcd")); //output is false
我认为这应该有助于OP的特殊问题.
标签:java,string
来源: https://codeday.me/bug/20191007/1867489.html