如何检查字符串是否仅包含ASCII?
来源:爱站网时间:2021-09-27编辑:网友分享
如果字符是字母,则调用Character.isLetter(c)返回true。但是,有没有一种方法可以快速查找字符串是否仅包含ASCII的基本字符?
问题描述
如果字符是字母,则呼叫Character.isLetter(c)
返回true
。但是,是否有一种方法可以快速查找String
是否仅包含ASCII的基本字符?
解决方法:
[从Guava 19.0起,您可以使用:
boolean isAscii = CharMatcher.ascii().matchesAllOf(someString);
这使用依赖于工厂方法matchesAllOf(someString)
的matchesAllOf(someString)
方法,而不是现在不推荐使用的ascii()
单例。
这里ASCII包括所有ASCII字符包括低于ascii()
(空格)的不可打印字符,例如制表符,换行/返回,还包括代码为ASCII
和0x20
的BEL
代码0x07
。
即使在早期版本的注释中指出了代码点,该代码也错误地使用了字符而不是代码点。幸运的是,创建值DEL
或更高的代码点所需的字符使用两个替代字符,其值在ASCII范围之外。因此,即使对于包含表情符号的字符串,该方法仍然可以成功测试ASCII。
对于没有0x7F
方法的早期Guava版本,您可以编写:
U+010000