我们爱分享----Java toLowerCase()/toUpperCase()方法的使用注意

铑枪--突廆孒 2011-08-28 09:58:56
加精
说明:如果大家写的代码涉汲到国际化的话,就看下去。如果想了解也可以看下去。

大家看下如下代码,我们在运行时,会是一个什么样的结果:

肯定有人说,这个肯定是true…没错,一般人想到这个肯定是true,但是…我们看看toUpperCase()(或toLowerCase(),下文件只说其中一个方法了)方法的源代码:

注意,这里调用了一个带Locale的重载方法,于是我们再看以下代码:

这个时候,运行的结果相信大家都能看得出来,是一个false,tr是土耳其的语言代码(至少在没有土语的机器上会不一样,还有其它地区的语言在返回时不是直接转成大写的,还加了一些特殊的符号),如果不幸,你写的程序正在这些地区运行,那就会得到一个错误的结果,甚至于你连错误的地方都找不到,很容易忽略它。因此我们在使用toLowerCase()方法时,尽量使用toLowerCase(Locale.US)这个方法来代替(或使用equalsIgnoreCase()方法来比较),这样就不会因为在不同语言的机器上出现一些让人莫名其妙的问题了。

如果大家使用过findbugs的话,会发现凡是使用toLowerCase()的地方,findbugs都会有警告提示的,我开始在修改findbugs时(XX公司要求外包项目静态检查结果一定要清零),不明所以,直接就将toLowerCase(Locale.getDefault())搬出来了,今天看到这样的说明惊得一身冷汗,幸好….幸好….

...全文
6571 41 打赏 收藏 转发到动态 举报
写回复
用AI写文章
41 条回复
切换为时间正序
请发表友善的回复…
发表回复
jupiterax 2013-07-20
  • 打赏
  • 举报
回复
图片呢?没有看什么嘛
Zidanen 2013-05-21
  • 打赏
  • 举报
回复
图片呢,22222222
mudeer2012 2013-04-28
  • 打赏
  • 举报
回复
确实没有想到过,楼主好样的
艾瑞儿 2012-12-14
  • 打赏
  • 举报
回复
果然细节害死人啊,幸好幸好
zhuyang7654321 2012-11-28
  • 打赏
  • 举报
回复
不错!学到了一种利器——FindBugs
风萧萧 2012-11-21
  • 打赏
  • 举报
回复
楼主好强啊!
fhqlpgk1218 2012-11-12
  • 打赏
  • 举报
回复
成败决定于细节啊亲
hao125366967 2012-07-19
  • 打赏
  • 举报
回复
细节决定成败啊。。。学习了。。。
ITbiyu 2012-03-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 boitwin 的回复:]

楼主好强大。
[/Quote]
是的,之前我也没有注意到。
zhc8501 2012-01-10
  • 打赏
  • 举报
回复
了解了,不错的发现,为以后犯错减少了几率,谢谢楼主
chq235 2011-11-21
  • 打赏
  • 举报
回复
很不错哈,又提醒了一点。。。
zjturn 2011-10-19
  • 打赏
  • 举报
回复
这个还真没注意过啊,学习了!向楼主致敬!
wangxinde317 2011-09-28
  • 打赏
  • 举报
回复
不错。分析的问题很细。
「已注销」 2011-09-13
  • 打赏
  • 举报
回复
吼吼,谢谢分享
kala197 2011-08-30
  • 打赏
  • 举报
回复
so good
xiaocongzhi 2011-08-30
  • 打赏
  • 举报
回复
中文处理就是麻烦点
jjbbffdd 2011-08-30
  • 打赏
  • 举报
回复
路过了 学习了 谢谢
  • 打赏
  • 举报
回复
楼主,分享贴不要结账啊
铑枪--突廆孒 2011-08-30
  • 打赏
  • 举报
回复
[Quote=引用 23 楼 xiaocongzhi 的回复:]
中文处理就是麻烦点
[/Quote]
这个不是中文的处理,这是英文的处理上。
dragonsky_w 2011-08-29
  • 打赏
  • 举报
回复
恩,谢谢lZ贴出来了,LZ不说我还不知道呢,谢谢了啊……推荐……
加载更多回复(19)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧