Java 使用户在输入无效后再次输入字符串
当用户输入无效数据但继续工作时,程序会抛出错误。如何强制用户输入数据,直到他输入正确的数据?我尝试了Java 使用户在输入无效后再次输入字符串,java,Java,当用户输入无效数据但继续工作时,程序会抛出错误。如何强制用户输入数据,直到他输入正确的数据?我尝试了系统。退出(0)但停止程序 同时也尝试了,,但不知道如何创建消息,说“嘿,输入无效,再试一次!” 我以前看过一些关于这个的问题,但找不到任何与我的问题非常相似的问题,因为我有这个正则表达式 我还需要添加新用户: System.out.println("Add first name for passenger: "); passengers.setName(scann
系统。退出(0)
但停止程序
同时也尝试了,
,但不知道如何创建消息,说“嘿,输入无效,再试一次!”
我以前看过一些关于这个的问题,但找不到任何与我的问题非常相似的问题,因为我有这个正则表达式
我还需要添加新用户:
System.out.println("Add first name for passenger: ");
passengers.setName(scanner.nextLine());
这是在我的方法中,registerNewPassenger
等等,对于lastName
,email
,在方法的末尾,我有这个
ArrayList<Passengers> passengersList = new ArrayList<>();
passengersList.add(passengers);
System.out.println(passengersList);
ArrayList passengersList=new ArrayList();
乘客列表。添加(乘客);
System.out.println(乘客列表);
大体上,我只是把它叫做。它可以是这样的:
在while循环中不断询问名称,直到它与正则表达式匹配为止
public void setName() {
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
while (!name.matches("[a-zA-Z]+")) {
//Name not matched
System.out.println("Please Enter a valid name");
name = sc.nextLine();
}
this.name = name;
}
这是可行的,但我在另一个类中有注册新用户的方法,我使用setter设置新名称,现在当我添加这个验证时,它的所有mixedI更新了我的问题。
private Scanner scanner = new Scanner(System.in);
private String name;
public void setName() {
String aName = "";
while (aName.isEmpty()) {
System.out.print("Enter Name: --> ");
aName = scanner.nextLine();
if (!aName.matches("[a-zA-Z]+")
System.err.println("Invalid Entry (" + name + ")! Only letters for name!");
aName = "";
}
}
this.name = aName;
}
public void setName() {
Scanner sc = new Scanner(System.in);
String name = sc.nextLine();
while (!name.matches("[a-zA-Z]+")) {
//Name not matched
System.out.println("Please Enter a valid name");
name = sc.nextLine();
}
this.name = name;
}