Java中关于字符串的几种"空"的区别

Java中关于字符串的几种"空"的区别

  首先需要明确字符串中,null和""这种空字符串之间的区别:

  null表示的是一个对象的值为空,String str = null是指str变量的并没有对象的引用,也就是说str并没有指向任何的内存空间。所以它并不是一个字符串。

  而String str1 = "",表示的是一个空字符串,只不过它的长度为零,但是它是有内存分配空间的。

  明白了以上的概念,就可以通过String中的几个方法来进行判读了。

  判断的方法可以采用str.isEmpty()、str.length()<=0、str.equals("")等方法来判断,但是在使用String对象中的方法时,首先要基于str!=null,否则会报java.lang.NullPointerException的异常。所以在判断str之前需要加上一个str!=null的判断。

  除此之外,还可以通过org.apache.commons.lang包中的StringUtils中的静态方法StringUtils.isBlank(str),通过这个方法,既可以判断str为null,也可以判断str为空字符串。但是StringUtils.isBlank()中判断的是str经过trim()后的值,也就是说虽然str2 = "   "此时的length = 3,所以不是空字符串,但是经过trim()后的结果却是""空字符串了。所以还是需要在实际中选择合适的方法。

        String str = "   ";
        System.out.println(StringUtils.isBlank(str));
        System.out.println(str.isEmpty());
        System.out.println(str.length()==0);
        System.out.println(str.equals(""));

结果是

        true
        false
        false
        false

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值