2016-02-26 3 views

ответ

13

Попробуйте следующее:

Pattern.matches(".*\\p{InCyrillic}.*", text) 

Вы также можете избежать регулярных выражений и использовать класс Character.UnicodeBlock:

for(int i = 0; i < text.length(); i++) { 
    if(Character.UnicodeBlock.of(text.charAt(i)).equals(Character.UnicodeBlock.CYRILLIC)) { 
     // contains Cyrillic 
    } 
} 
+0

Я предполагаю, что производительность лучше, если я не использовать регулярное выражение? Я на Android, если это имеет значение. – knezmilos

+1

@knezmilos Я не думаю, что вы заметите большую разницу (это зависит от размера текста - вы можете попробовать измерить оба пути). Я предпочитаю второй путь, потому что это более ясно. – manouti

Смежные вопросы