如果格式正好是“xxx-xxx-xxxx”,其中x可以是任何数字,但只有数字,并且必须有破折号,分组。基本上,它应该接受电话号码。现在我有:
Scanner input = new Scanner(System.in);
String in = input.next(); // Stores user input as a string
if (in.contains("[a-zA-Z]") == false && in.length() == 12) {
System.out.println("Number Accepted");
} else {
System.out.println("Number Rejected");
}
目前,它会拒绝大于或小于12个字符的数字,但它会接受任何12个字符,即使它有字母。我也没有正确分组数字和破折号的解决方案,因为用户应该只能输入3个数字,然后是破折号,然后是3个数字,然后是破折号,最后是4个数字。
答案 0 :(得分:1)
您可以使用Pattern
来应用正则表达式:
Pattern pattern = Pattern.compile("^\d{3}-\d{3}-\d{4}$");
Scanner input = new Scanner(System.in);
String in = input.next(); // Stores user input as a string
if (pattern.matcher(in).matches())) {
System.out.println("Number Accepted");
} else {
System.out.println("Number Rejected");
}