在Sting中限制用户输入

时间:2019-09-08 13:30:50

标签: java

我试图限制此代码中的用户输入,因此根据选择,允许使用“ D ##”或“ E ##”。我应该如何制定条件?

System.out.println("Please choose one of the following options: ");
System.out.println("1. ");
System.out.println("2. ");
while (!scanner.hasNextInt()) {
    System.out.println("You have entered an invalid input. Please choose between options 1 and 2");
    scanner.nextLine();
}
choice = scanner.nextInt();
scanner.nextLine();
if (choice == 1) {
    System.out.println("Enter an ID of the type D##");
    input = scanner.nextLine();
    if (input.equals("D" + "[0-9]{2}")) {
        System.out.println("Nice");
    } else {
        System.out.println("Invalid Input");
    }
    break;
} else if (choice == 2) {
    System.out.println("Enter an ID of the type E##");
    input = scanner.nextLine();
    if (input == "E[0-9]{2}") {
        System.out.println("Nice");
    } else {
        System.out.println("You have entered an invalid input. Please choose between options 1 and 2");
        continue;
    }
}

1 个答案:

答案 0 :(得分:0)

使用java.lang.String.matches代替==equals

  

匹配

     

public boolean matches(String regex)

     

告诉此字符串是否与给定的正则表达式匹配。   以str.matches(regex)形式调用此方法所产生的结果与表达式Pattern.matches(regex, str)

完全相同      

参数:   regex-该字符串要匹配的正则表达式

     

返回:   true仅在此字符串与给定的正则表达式匹配时

     

抛出:   PatternSyntaxException-如果正则表达式的语法无效

     

因为:   1.4

     

另请参阅:   Pattern