gpt4 book ai didi

Java 密码模式

转载 作者:行者123 更新时间:2023-12-01 09:28:01 26 4
gpt4 key购买 nike

密码检查程序应该接受用户输入的用户名和密码,并输出密码是否有效。

我一直在尝试使用正则表达式来实现此目的,但遇到了问题。该模式适用于我的所有规则,但用户名规则除外。另外,有没有办法将输出从“true”或“false”更改为自定义内容?

到目前为止我的代码:

import java.util.regex.*;
import java.util.Scanner;

public class validPassword {
private static Scanner scnr;

public static void main(String[] args) {
Scanner input = new Scanner(System.in);

// Variable Management
String un, pw, req; // Variable Variable

System.out.println("Please enter a username: ");
// ^Need to implement so if it matches the password it's invalid^
un = input.nextLine(); // Gathers user's username input
System.out.println("Please enter a password: ");
pw = input.nextLine(); // Gathers user's password input

req = "(?=.*[0-9])(?=.*[a-zA-Z]).{8,}";
System.out.println(pw.matches(req)); // Can I customize the output?
}

}

非常感谢任何帮助! :)

最佳答案

您应该能够首先检查它是否具有该子序列。我会先检查一下,然后检查您的密码规则。所以像这样(使用正则表达式):

// get username and password
if(pw.matches(".*"+Pattern.quote(un)+".*")){
System.out.println("Password can't have username in it...");
}
// make sure password follows rules...

更好的方法是对字符串 ( docs ) 使用 contains 方法。

if (pw.contains(un)) {...}

就自定义 matches 的输出而言,您无法做到。您需要有条件地分支并做一些不同的事情。

关于Java 密码模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39682407/

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