Как я могу сделать так, чтобы входной сигнал от пользователя принимался, только если формат соответствует «xxx-xxx-xxxx», где x может быть любым числом, но в этих группах должны присутствовать только цифры и тире , В принципе, он должен принимать номера телефонов. Сейчас у меня есть:Как принимать только конкретный формат чисел от пользователя на Java?
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 числа.
Вы пытаетесь проверить номер телефона, номер социального страхования в или что-то совсем другое? – Makoto
'String # contains()' принимает последовательность символов, а не регулярное выражение. Ваш метод проверит наличие подстроки «[a-zA-Z]». –
Следующее регулярное выражение должно делать трюк: '/^\ d {3} - \ d {3} - \ d {4} $ /'. –