String trim方法,使用前需要判空

文章讨论了在Java接口导入中,由于手动录入可能导致字段前后空格,如果没有正确处理,使用trim方法可能导致空指针异常。作者强调了对非必填字段进行空值检查的重要性,给出了合理使用trim函数的示例。

        背景是接口导入时,部分字段因为手动录入可能误输空格,所以需去掉前后空格,这些属性为非必填,所以未校验非空,引发空指针异常。

代码类似这样,未判断是否为空,直接trim,导致空指针异常

    @Test
    public void test(){
        String a = "    a    ";
        String b = "    ";
        String c = " ";
        String d = null;
        System.out.println("a: " + StringUtils.isEmpty(a));
        System.out.println("b: " + StringUtils.isEmpty(b));
        System.out.println("c: " + StringUtils.isEmpty(c));
        System.out.println("d: " + StringUtils.isEmpty(d));
        System.out.println("a.trim: " + StringUtils.isEmpty(a.trim()));
        System.out.println("b.trim: " + StringUtils.isEmpty(b.trim()));
        System.out.println("c.trim: " + StringUtils.isEmpty(c.trim()));
        System.out.println("d.trim: " + StringUtils.isEmpty(d.trim()));
    }

trim源码如下

public static String trim(byte[] value) {
        int len = value.length;
        int st = 0;
        while ((st < len) && ((value[st] & 0xff) <= ' ')) {
            st++;
        }
        while ((st < len) && ((value[len - 1] & 0xff) <= ' ')) {
            len--;
        }
        return ((st > 0) || (len < value.length)) ?
            newString(value, st, len - st) : null;
    }

合理的使用应该加上判断

if(!StringUtils.isEmpty(d)){
   System.out.println("d.trim: " + StringUtils.isEmpty(d.trim()));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Qrind

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值