Добрый вечер! У меня есть параметр входящей строки, что-то вроде этого "522 | 625 | 925 | ... 6234 |" Создаю такой вид штатной нитью. "([0-9] \ |) *" ввести шаблон в приложение и ...
public static String decrypt( String message, int incr ) {
String result = "";
Pattern pattern = Pattern.compile("([0-9]\\|)*");
Matcher matcher = pattern.matcher(message);
boolean look = matcher.lookingAt();
if (look) {
Log.d("MyActivity","exist: " + message);
Я вижу строку "exist: niiice" в журнале cat. Что я сделал не так?
1 ответ
Попробуй это
Pattern pattern = Pattern.compile("(\\d+\\|{1})+");
Квантификатор «*» в вашем шаблоне означает ноль или более раз, поэтому matcher.lookingAt () возвращает true для любой входной строки.
http://docs.oracle.com/javase/6/docs/api/java/util/regex/Pattern.html
Похожие вопросы
Новые вопросы
android
Android — это мобильная операционная система Google, используемая для программирования или разработки цифровых устройств (смартфонов, планшетов, автомобилей, телевизоров, одежды, очков, IoT). Для тем, связанных с Android, используйте теги, специфичные для Android, такие как android-intent, android-activity, android-adapter и т. д. Для вопросов, отличных от разработки или программирования, но связанных с Android framework, используйте эту ссылку: https://android .stackexchange.com.
*
на+
правильно, но почему вы добавили{1}
? Вы знаете, что это ничего не делает, не так ли?