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