密码长度不能小于8位,字母加数字形式Java代码
时间: 2024-02-27 13:54:21 浏览: 18
可以使用正则表达式来判断密码是否符合要求:
```java
String password = "password123";
Pattern pattern = Pattern.compile("^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$");
Matcher matcher = pattern.matcher(password);
if (matcher.matches()) {
System.out.println("密码符合要求");
} else {
System.out.println("密码长度不能小于8位,且必须包含字母和数字");
}
```
这段代码中,使用正则表达式 `^(?=.*[A-Za-z])(?=.*\\d)[A-Za-z\\d]{8,}$` 来判断密码是否符合要求。其中:
- `^` 表示字符串的开始位置
- `(?=.*[A-Za-z])` 表示必须包含至少一个字母
- `(?=.*\\d)` 表示必须包含至少一个数字
- `[A-Za-z\\d]{8,}` 表示密码由至少8个字母或数字组成
- `$` 表示字符串的结束位置
如果密码符合要求,则输出 "密码符合要求";否则输出 "密码长度不能小于8位,且必须包含字母和数字"。
相关问题
2.银行系统新增注册功能, 注册功 能要求用户名唯一, 不能与集合当中的任意一个账户的用户名相同,用户名具体如下: 1.用户名的长度需要是6 – 12位 2.用户名不能出现中文, 只能是数字或英文的组合, 可以是纯数字亦或者是纯字母 3.密码的具体需求如下: 1.密码长度不能小于8位且不能大于18位 2.密码不能出现中文, 不能是特殊字符, 只能是英文或者是数字的组合, 可以是纯数字或者是纯字母 3.密码要求效验两次, 当用户输入完密码后,需要让用户二次输入密码并且与上一次的密码进行对比, 对比失败则让用户重新开始注册的Java代码
好的,以下是实现上述功能的Java代码:
```java
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class BankSystem {
public static void main(String[] args) {
Set<String> usernames = new HashSet<String>();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("请输入用户名:");
String username = scanner.nextLine();
if (username.length() < 6 || username.length() > 12) {
System.out.println("用户名长度应为6-12位!");
continue;
}
if (!username.matches("^[a-zA-Z0-9]+$")) {
System.out.println("用户名只能包含数字或英文字母!");
continue;
}
if (usernames.contains(username)) {
System.out.println("该用户名已被注册,请重新输入!");
continue;
}
System.out.print("请输入密码:");
String password1 = scanner.nextLine();
if (password1.length() < 8 || password1.length() > 18) {
System.out.println("密码长度应为8-18位!");
continue;
}
if (!password1.matches("^[a-zA-Z0-9]+$")) {
System.out.println("密码只能包含数字或英文字母!");
continue;
}
System.out.print("请再次输入密码:");
String password2 = scanner.nextLine();
if (!password1.equals(password2)) {
System.out.println("两次密码不一致,请重新输入!");
continue;
}
System.out.println("注册成功!");
usernames.add(username);
System.out.print("是否继续注册?(Y/N)");
String choice = scanner.nextLine();
if (!"Y".equalsIgnoreCase(choice)) {
break;
}
}
scanner.close();
}
}
```
这个程序使用了一个`HashSet`来存储已经注册的用户名,每次输入用户名之前先检查长度和格式,然后再检查是否与已有的用户名重复。如果用户名通过了检查,就继续让用户输入密码,并且要求用户确认密码。最后,如果注册成功,就将用户名加入`HashSet`中。如果用户不想继续注册,程序就会退出。
java 实现正则表达 包含大写英文字母,空格,和特殊字符长度小于100
可以使用 Java 的正则表达式来实现这个功能。下面是一个示例代码:
```java
import java.util.regex.*;
public class RegexExample {
public static void main(String[] args) {
String input = "Hello, World! 123";
String pattern = "^[A-Z\\s!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]{1,100}$";
Pattern p = Pattern.compile(pattern);
Matcher m = p.matcher(input);
if (m.matches()) {
System.out.println("Match!");
} else {
System.out.println("No match.");
}
}
}
```
在这个例子中,我们使用了一个正则表达式模式来匹配输入字符串。模式中的 `^` 和 `$` 分别表示字符串的开始和结尾,`[A-Z\\s!@#$%^&*()_+\\-=[\\]{};':\"\\\\|,.<>/?]` 表示包含大写英文字母、空格和一些特殊字符的字符集,`{1,100}` 表示长度在 1 到 100 个字符之间。
在实际使用时,你需要替换 `input` 变量为你要匹配的字符串。如果匹配成功,程序会输出 "Match!",否则输出 "No match."。