Я думаю, что ваш вопрос должен звучать так: «Когда я должен использовать метод Pattern.matches()
?», А ответ - «Никогда». Вы ожидали, что он вернет массив совпадающих подстрок, как это делают методы .NET Matches
? Это вполне разумное ожидание, но нет, у Java нет ничего подобного.
Если вы просто хотите сделать быстрое и грязное совпадение, украсьте регулярное выражение с .*
на обоих концах и используйте собственный метод matches()
строки:
System.out.println(str.matches(".*\\+.*"));
Если вы хотите извлечь несколько совпадений или впоследствии получить доступ к информации о совпадении, создайте экземпляр Matcher и используйте его методы, как вы делали в своем вопросе. Pattern.matches()
- это не что иное, как упущенная возможность.