Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用户在输入无效后再次输入字符串_Java - Fatal编程技术网

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;
}