код с регулярным выражением (regex) в java

Делаю задание по теме "коллекции HashMap и TreeMap" в начале которого вводиться в консоль имя либо номер телефона, и мне в зависимости от того ввели имя или номер телефона, нужно произвести с строкой определенные действия. Я понимаю что нужно использовать регулярные выражение regex, и я уже проверял строку на соответствие одному шаблону, но как мне в методе прописать, проверку слова на соответствие 2м шаблонам, один шаблон проверяет строку явл.ли она Именем "[а-яёА-ЯЁ]+" , а второй шаблон ”\d{11}” проверяет строку явл ли строка номером телефона, и если вели номер телефона, то я номер добавляю в коллекцию HashMap как значение, если ввели в консоль имя то добавляю в коллекцию HashMap как ключ, а если введенная строка не соответствует ни тому ни другому, то вывожу в консоль сообщение об ошибке. В общем такой вопрос, надеюсь смог более или мене внятно его сформулировать.


Ответы (1 шт):

Автор решения: Klioda

Просто проверьте по очереди оба варианта. Например:

Pattern numberPattern = Pattern.compile("\\d{11}");
Pattern namePattern = Pattern.compile("[а-яёА-ЯЁ]+");

String input = "01234567890";

if (numberPattern.matcher(input).matches()) {
    System.out.println("This is number");
} else if (namePattern.matcher(input).matches()) {
    System.out.println("This is name");
} else {
    throw new ValidationException("Incorrect input string")
}
→ Ссылка