Я хочу проверить, содержит ли моя строка слова определенной длины
String s = "ab a abc ac";
if (s.contains(/*any words with 3 or more letters which would be 'abc'*/){
//doSomething
}
Есть ли способ сделать это в регулярном выражении или простым методом? Похожий на
s.contains("[a-za-za-z]"); //or
s.contains().lettersInARow(3);
Я хочу найти их и выдать ошибку, когда будет найдено что-то длиннее 2 символов.
or with a simple method
String s = "?ab a abc ac";
long countWordsWithAtLeastThreeCharacters =
Arrays.stream( s.split( " " ) )
.filter( word -> input.codePoints().toArray().length > 3 )
.count() ;
Я добавил ЛИЦО С МЕДИЦИНСКОЙ МАСКОЙ, чтобы продемонстрировать, что это работает со всеми персонажами. Избегайте использования char
, так как он физически не может представлять большинство символов.
Имейте в виду, что в некоторых языках то, что вы можете воспринимать как одну «букву», на самом деле представляет собой комбинацию символов два, букву, за которой следует «комбинированный диакритический знак». Пример здесь. Обсуждение здесь.
Любите безопасное программирование COVID. Но это не сработает с антипрививочниками, потому что у них нет своих смайликов. (Давайте начнем теорию заговора по этому поводу :-))