Если я правильно понимаю, я думаю, что вы путаете сравнение с регулярным выражением с равенством строк Java.Ваш код выше проверяет, равна ли строка из сеанса шаблону.Насколько я понимаю, вы пытаетесь определить, содержит ли строка число или нет?
Существует несколько способов сделать это.Одним из таких методов является использование соответствия регулярному выражению \d
.Или Guava lib com.google.common.base.CharMatcher#digit
Или просто попробуйте разобрать номер и поймать java.text.ParseException
, если он не удался.Последний может широко рассматриваться как плохая практика, поскольку это анти-паттерн, известный как использование исключений для управления потоком.
Вот несколько примеров:
Гуава
CharMatcher.inRange('0', '9').matchesAllOf("A string");
Regex
final Matcher matcher = Pattern.compile("\\d+").matcher("0292");
if (matcher.matches()) {
// contains number
} else {
// no number.
}
Двойная обратная косая черта состоит в том, чтобы экранировать символ \
в Java.
Конечно, есть и другие базовые примеры, как указывали другие участники до меня, такие как обычный старый Integer.parse
, Long.parse
, new BigInteger("")
Просто не забудьте еще раз перехватить исключения в случае ошибки разбора.