密码检查器Java

密码检查器Java,java,Java,如果字符串是有效密码,则编写函数返回 它必须至少有8个字符长,并且只能由 字母和数字的组合 这是我目前的代码: for (int i = 1; i < password.length() -1; i++) { char l = password.charAt(i); if (password.length() < 8 && !Character.isLetter(l) || !Character.isDigit(l)) {

如果字符串是有效密码,则编写函数返回

它必须至少有8个字符长,并且只能由 字母和数字的组合

这是我目前的代码:

for (int i = 1; i < password.length() -1; i++)
{
     char l = password.charAt(i);
     if (password.length() < 8 && !Character.isLetter(l) || !Character.isDigit(l))
     {
        return false;
     }
}
return true;
for(int i=1;i
您可以使用正则表达式来执行此操作

private static boolean isPasswordValid(String password) {
    return password.matches("(\\w+){8,}");
}

为什么从1开始?您将错过索引0处的第一个字母。问题是什么?您不需要重复检查循环中的长度。你需要有
!伊斯兰特&!isDigit
(注意和)。此外,您还将其标记为Java和JavaScript。Java和JavaScript根本不是一回事。这是Java。一般的建议是使用
String
作为密码不利于安全性;改用
char[]
array。但是对于一个编程练习来说,它是可以的。
\w
匹配字母、数字和下划线。啊,是的,很好的一点,更改为更严格,这是正确的。备选方案:
“\p{Alnum}{8,}”
private static boolean isPasswordValid(String password) {
    return password.matches("(\\w+){8,}");
}