import java.util.Scanner;
public class Exercise6_18 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Password rules:\n"
+ "Password must have at least eight characters\n"
+ "Password must consist of only letters and digits\n"
+ "Password must contain at least two digits\n"
+ "Enter a password:");
String pWT = sc.next();
passWordIsValid(pWT);
}
public static void passWordIsValid (String password) {
boolean passWordIsValid;
if (password.length() < 8) {
passWordIsValid = false;
}
else if (password.indexOf(0) == -1 && password.indexOf(1) == -1
&& password.indexOf(2) == -1 && password.indexOf(3) == -1
&& password.indexOf(4) == -1 && password.indexOf(5) == -1
&& password.indexOf(6) == -1 && password.indexOf(7) == -1
&& password.indexOf(8) == -1 && password.indexOf(9) == -1) {
passWordIsValid = false;
}
else
passWordIsValid = true;
if (passWordIsValid == true)
System.out.print("Password is valid");
else if (passWordIsValid == false)
System.out.println("Password is invalid");
}
}
我正在尝试编写一个程序,提示用户输入一个至少8个字符长的密码,至少包含两位数字,并且只包含字母和数字但是当我输入时:password12表示密码无效。附:我知道我没有在方法中添加至少两位数的要求。
答案 0 :(得分:1)
{{1}}
您希望使用此代码实现什么目标?它根本没有任何意义。您可能希望循环遍历字符串的每个字符,而不是计算每个字符(如果它是一个数字)(并且一旦您的计数> = 2,您就可以“断开”而不是循环)。
另外:不要将密码保存在字符串中......它们会在字符串池中保留很长时间,并且可以被恶意程序从内存中读取。您可以使用char []代替。
答案 1 :(得分:0)
您的算法不会检查是否至少有两位数字,并且不会检查其中是否只有可打印的字符和数字。您需要循环遍历所有字符并计算数字的数字,并确保每个字符都是数字或字母字符,而不是检查indexOf(),跟踪数字的数字。
答案 2 :(得分:0)
使用Regex验证密码。积极的Lookahead在验证字符串方面表现非常出色。
java中的示例
else if (is.array(a) && length(sz) > 2) {
n <- dim(a)
l <- length(n)
for (i in 1:l) {
s <- sz[i] %% n[i]
#????
}
}
public static void main(String[] args) {
String passwd = "aaZZa44@";
String pattern = "^(?=.*[0-9].*[0-9])(?=.*[a-z])(?=.*[A-Z]).{8,}$";
System.out.println(passwd.matches(pattern));
答案 3 :(得分:0)
如果您不想使用@Component({
selector: 'child',
template: '<div>child state</div>',
styleUrls: ['./index.component.css']
})
,可以使用简单的<a routerLink="child">go to child</a>
和<router-outlet>
,您可以执行以下操作:
<div>some content</div><div>child state</div>
<强>测试强>
</router-outlet>