用JAVA编写一个程序,模拟用户注册。用户输入用户名、密码、确认密码、生日(格式为yyyy-mm-dd为正确)、手机号(手机号长度为11位,并且以13、15、17、18为开头的手机号为正确)、邮箱(包含符号“@”为正确)信息之后,判断信息正确后,验证用户是否重复,重复则给出相应提示,如果不重复则注册成功。案例要求使用HashSet集合实现。
时间: 2023-12-03 18:46:37 浏览: 115
好的,下面是Java代码实现:
```java
import java.util.HashSet;
import java.util.Scanner;
public class UserRegister {
public static void main(String[] args) {
HashSet<User> userSet = new HashSet<>();
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入用户名:");
String username = scanner.nextLine();
System.out.println("请输入密码:");
String password = scanner.nextLine();
System.out.println("请再次输入密码:");
String confirmPassword = scanner.nextLine();
System.out.println("请输入生日(格式为yyyy-mm-dd):");
String birthday = scanner.nextLine();
System.out.println("请输入手机号:");
String phoneNumber = scanner.nextLine();
System.out.println("请输入邮箱:");
String email = scanner.nextLine();
if (isValidInput(username, password, confirmPassword, birthday, phoneNumber, email)) {
User newUser = new User(username, password, birthday, phoneNumber, email);
if (userSet.contains(newUser)) {
System.out.println("该用户已经注册,请重新输入信息!");
} else {
userSet.add(newUser);
System.out.println("注册成功!");
break;
}
} else {
System.out.println("输入信息有误,请重新输入!");
}
}
}
private static boolean isValidInput(String username, String password, String confirmPassword, String birthday, String phoneNumber, String email) {
if (username.isEmpty() || password.isEmpty() || confirmPassword.isEmpty() || birthday.isEmpty() || phoneNumber.isEmpty() || email.isEmpty()) {
return false;
}
if (!password.equals(confirmPassword)) {
return false;
}
if (!birthday.matches("\\d{4}-\\d{2}-\\d{2}")) {
return false;
}
if (!phoneNumber.matches("1[3578]\\d{9}")) {
return false;
}
if (!email.contains("@")) {
return false;
}
return true;
}
}
class User {
String username;
String password;
String birthday;
String phoneNumber;
String email;
public User(String username, String password, String birthday, String phoneNumber, String email) {
this.username = username;
this.password = password;
this.birthday = birthday;
this.phoneNumber = phoneNumber;
this.email = email;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
if (!username.equals(user.username)) return false;
if (!birthday.equals(user.birthday)) return false;
if (!phoneNumber.equals(user.phoneNumber)) return false;
return email.equals(user.email);
}
@Override
public int hashCode() {
int result = username.hashCode();
result = 31 * result + birthday.hashCode();
result = 31 * result + phoneNumber.hashCode();
result = 31 * result + email.hashCode();
return result;
}
}
```
程序中使用了一个`User`类来表示用户信息,使用`HashSet`集合来存储已经注册的用户信息,每次新注册用户时判断该用户是否已经存在于集合中,如果存在则提示用户重新输入信息,否则将该用户添加到集合中并提示用户注册成功。
同时,程序还使用了`isValidInput`方法来判断用户输入的信息是否有效。如果输入信息有误,则需要提示用户重新输入。
阅读全文