文字列を反復処理する一連の for ループを使用してこれを行うことはできますが、それはひどいプログラミングになります。教授は、この方法を使用しないように勧めています。これを行うには、正規表現を使用したいと思います。
ベストアンサー1
単純な文字列チェックの場合、文字列を 1 回スキャンするだけで十分です。正規表現では大きなメリットが得られないため、同じことを実現する単純な 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 の特定の問題に役立つと思います。