bug记录——toUpperCase 方法失效

今天发现一个超级隐藏性的bug,首先放上我的源代码:

if (Character.isLetter(arr[i])) {
                        String s = String.valueOf(arr[i]);
                        s.toUpperCase();
                        sb.append(s);
                    }

其实就是很简单的一个判断,如果那个字符为字母的话,我也把它转换成大写,结果居然是toUpperCase失效了。看了网友好多什么要用toUpperCase(Locale)什么的,结果换了Locale.US和Locale.ENGLISH都不行,这是什么奇葩问题吗?只好搜这个方法的源码了,一看到示例秒懂自己问题出在了哪里,于是改成下面这段代码,问题解决。

if (Character.isLetter(arr[i])) {
                        String s = String.valueOf(Character.toUpperCase(arr[i]));
                        sb.append(s);
                    }

只能说,细节真重要啊,要不是测试录了个姓名为类似于“xiaomei”这样的格式,我怕是都发现不了自己那行代码无效了。不过后面经人一点拨,发现toUpperCase()方法竟然是由String返回的,所以我是没赋值才出现这种情况的吗?果断再测试一下。

if (Character.isLetter(arr[i])) {
                        String s = String.valueOf(arr[i]);
                        String result = s.toUpperCase();
                        sb.append(result);
                    }

问题也解决了,真的是粗心呀,以后真的要多注意细节细节!!!

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值