在项目中有时候可能需要判断输入的是否全是英文或数字,如果你不善于使用正则,JDK中提供了
Character
类对字符进行操作,其中的
isLetter
和
isLetterOrDigit
方法貌似可以做到这一点。但是如果你试下下面的代码,你会失望的:
很不幸地,Java天生提供了对unicode的支持,因此在她眼里中文也是“letter”,所以上面打印出的是true……。替代方案是,使用
Apache Commons
子项目中的
lang
库,
CharUtils
的
isAsciiAlpha
(char)
,
isAsciiNumeric(char),
isAsciiAlphanumberic
(char)
等对字符进行字母,大小写字母,数字等进行判断
多说一句,commons项目是个大宝库,其中提供了大量对JDK的增强API,lang库就是对java.lang的增强,比如使用反射生成toString的
ToStringBuilder
,使用反射生成hashCode的
HashCodeBuilder
,使用反射生成equals的
EqualsBuilder
等等,大家可以慢慢自己发掘~
— EOF —