我正在尝试更改类(Character)的一部分,因此我可以将结尾更改为.isDigit。就像我可以将类型测试器改为我想要的但我不知道如何做到这一点。
public static boolean testText (String password, int length,typeTester) {
boolean test = false;
for (int count = 0; count <= (length-1); count++){
char resultConverted = password.charAt(count);
if (Character.typeTest(resultConverted))
test = true;
}
return test;
}
编辑: 所以现在有办法做得更好,然后做这样的事情来分析一个词:
public static boolean testUpperCase (String password, int length) {
boolean upperCase = false;
for (int count = 0; count <= (length-1); count++){
char resultConverted = password.charAt(count);
if (Character.isUpperCase(resultConverted))
upperCase = true;
}
return upperCase;
}
public static boolean testLowerCase (String word, int length) {
boolean lowerCase = false;
for (int count = 0; count <= (length-1); count++){
char resultConverted = word.charAt(count);
if (Character.isLowerCase(resultConverted))
lowerCase = true;
}
return lowerCase;
}
这只是一个问题,找到一个比我迄今为止所做的更优雅的替代方案。
答案 0 :(得分:1)
以下是testUpperCase
的更优雅的变体:
boolean testUpperCase(String password) {
for(char c : password.toCharArray()) {
if(Character.isUpperCase(c)) {
return true;
}
}
return false;
}
答案 1 :(得分:0)
如果String不等于转换为小写的String意味着应该有一些大写字符。
/* Test if there are any uppercase character in the string */
boolean testUpperCase(String password) {
return !password.equals(password.toLowerCase());
}
同样测试String是否包含小写字符:
/* Test if there are any lowercase character in the string */
boolean testLowerCase(String password) {
return !password.equals(password.toUpperCase());
}