gpt4 book ai didi

java - 提示用户输入密码并检查条件的程序

转载 作者:行者123 更新时间:2023-12-02 13:22:56 26 4
gpt4 key购买 nike

所以我一直在开发这个程序,它提示用户输入密码,但密码必须至少有8个字符长,并且只能包含字母和数字。这是我的代码:

import java.util.Scanner;

public class Password {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
System.out.println("Please enter a password: ");
String password = input.nextLine();
boolean valid = true;

if (valid(password)) {
System.out.println("Password accepted!");
}
}

public static boolean valid(String password) {
if (password.length() < 8) {
System.out.println("Password must have at least eight characters.");
return false;
} else {
char c;
for (int i = 0; i < password.length(); i++) {
c = password.charAt(i);
if (password.matches("[0-9a-zA-Z]+")) {
return true;
} else {
System.out.println("Password must only contain letters and digits.");
return false;
}
}
return true;
}
}
}

我遇到的问题是,当我输入像 $$$ 这样的输入时,唯一的输出是“密码必须至少有八个字符”,但我需要这个输出和“”密码必须只包含字母和数字。”换句话说,我需要程序检查两个条件是否都为假并显示两个输出。我该如何做呢?

此外,如果您对如何改进我的程序有任何建议,那也会很有帮助。

谢谢!

最佳答案

您可以简单地将有效变量从 main 方法移动到 valid 方法,并针对每个不满足的条件将其设置为 false。只有在检查完所有条件后才最终返回。

public static boolean checkValid(String password) {
boolean valid = true;

if (password.length() < 8) {
System.out.println("Password must have at least eight characters.");
valid = false;
}
if(!password.matches("[0-9a-zA-Z]+")) {
System.out.println("Password must only contain letters and digits.");
valid = false;
}

return valid;
}

并且您不需要迭代密码的每个字符来匹配正则表达式。

关于java - 提示用户输入密码并检查条件的程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43497371/

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