现有一个场景,对于发票信息,需要把信息中的地址和电话进行拼接,开户号和账号进行拼接,那应该怎么做?最简单的方法是使用+拼接,但问题是如果有个字段为空,是null,那么拼接结果是什么样的?来个下面的示例
public static void main(String[] args) {String a = null;String b = "world";String c1 = a + b;String c2 = StringUtils.defaultString(a) + StringUtils.defaultString(b);System.out.println(c1);System.out.println(c2); }
打印结果如下:
可以看出,如果字符串为null,那么直接使用+拼接(第一种方式),会将null也拼接,显然不是人性化的,看起来也不舒服。而第二种方式是就不会出现这样的问题,其实使用的是apache的工具类
org.apache.commons.lang3.StringUtils#defaultString
究其代码,其实也是当为null时设置为空串,相当于给了默认值。
肯定有人会说了,那我在拼接之前做一下判断,为null时将其替换为空串不就行了?当然可以,但是代码不会显得比较冗余?有官方已经封装好的方法不用,自己再去写,那不是笨蛋么
建议在编写代码时,尽量使用工具类(官方或自定义),减少代码冗余,维护起来也方便很多