Начиная с Гуава 19.0 и далее, вы можете использовать:
boolean isAscii = CharMatcher.ascii().matchesAllOf(someString);
При этом используется метод matchesAllOf(someString)
, основанный на заводском методе ascii()
, а не устаревший ASCII
singleton.
Здесь ASCII включает все символы ASCII , включая непечатаемые символы ниже 0x20
(пробел), такие как вкладки, перевод строки / возврат, но также BEL
с кодом 0x07
и DEL
с кодом 0x7F
.
Этот код неправильно использует символы, а не кодовые точки, даже если кодовые точки указаны вкомментарии более ранних версий.К счастью, символы, необходимые для создания кодовой точки со значением U+010000
или более, используют два суррогатных символа со значением вне диапазона ASCII.Таким образом, метод все еще успешно тестирует ASCII, даже для строк, содержащих emoji.
Для более ранних версий Guava без метода ascii()
вы можете написать:
boolean isAscii = CharMatcher.ASCII.matchesAllOf(someString);