如何在java扫描仪中仅接受信件

如何在java扫描仪中仅接受信件,java,validation,java.util.scanner,Java,Validation,Java.util.scanner,我的代码里有一个扫描器。我希望我的扫描仪只接受字母,如果检测到数字,则重复用户输入。你知道我该怎么做吗 以下是我的示例代码: if (isFull() == false) { Scanner input = new Scanner(System.in); Passenger p = new Passenger(); System.out.print("Enter first name: "); p.setName(input.nextLine());

我的代码里有一个扫描器。我希望我的扫描仪只接受字母,如果检测到数字,则重复用户输入。你知道我该怎么做吗

以下是我的示例代码:

if (isFull() == false) {
    Scanner input = new Scanner(System.in);
    Passenger p = new Passenger();

    System.out.print("Enter first name: ");
    p.setName(input.nextLine());

    System.out.print("Enter surname: ");
    p.setSurname(input.nextLine());

    queueArray[last] = p;
    last = (last + 1) % queueArray.length;
    System.out.println("Passenger entered is now in position " + last);
    System.out.println("");
}

您可以使用正则表达式模式确定用户输入是数字还是字符串:

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

    System.out.print("Enter first name: ");
    String a = input.nextLine();

    Pattern p = Pattern.compile("\\d+");
    Matcher m = p.matcher(a);
    if(m.matches()){
        System.out.println("all characters are digits!");
    }
    else System.out.println("its a normal string");
}