gpt4 book ai didi

java - 密码输入规则

转载 作者:行者123 更新时间:2023-11-30 10:29:26 25 4
gpt4 key购买 nike

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 时,它说密码无效.附言我知道我没有在方法中添加至少两位数的要求。

最佳答案

...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;
}...

你想用这段代码实现什么?这根本没有任何意义。您可能想要遍历字符串的每个字符,而不是同时计算每个字符(如果它是一个数字)(并且您可以“中断;”一旦您的计数为 >=2 就退出循环)。

此外:不要将密码保存在字符串中...它们会在字符串池中停留相当长的一段时间,并且可以被恶意程序从内存中读取。您可以改用 char[]。

关于java - 密码输入规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44032738/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com