在项目中有时候可能需要判断输入的是否全是英文或数字,如果你不善于使用正则,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等等,大家可以慢慢自己发掘~
-- EOF --
除非注明(如“转载”、“[zz]”等),本博文章皆为原创内容,转载时请注明: 「转载自程序员的信仰©」
本文链接地址:有关Character.isLetter()和Character.isLetterOrDigit()
Today on history:
【2009】如何配置Tomcat数据库连接池
【2009】《世界人权宣言》
【2008】如何使用J2D将一张图片灰度化
发表回复