Java中String字符串:空字符串、存放空的字符串、null的区别

Java String字符串中有三种特殊的字符串:空字符串、存放空的字符串、字符串为Null,如下所示:

        String str1 = "";String str2 = " ";String str3 = null;

字符串str1表示空字符串,字符串str2表示存放空的字符串,字符串str3表示为null的字符串。
那么他们的长度是多少以及他们调用isEmpty()函数的情况,本文针对这一问题,做了对比试验。

@Testpublic void test06() {String str1 = "";String str2 = " ";String str3 = null;int str1Length = str1.length();int str2Length = str2.length();
//        int str3Length = str3.length(); // 报错System.out.println("the length of str1:"+str1.length()); // 0System.out.println("the length of str2:"+str2.length()); // 1
//        System.out.println("the length of str3:"+str3.length()); // 报错if (str1.isEmpty()){System.out.println("-------str1为空-----");}if (str2.isEmpty()){ // str2不为空System.out.println("-------str2为空-----");}
//        if (str3.isEmpty()){ // 报错
//            System.out.println(str3);
//        }System.out.println("-------调用isBlank()方法------");if(StringUtils.isBlank(str1)){System.out.println("------调用isBlank()方法---str1为空-----");}if(StringUtils.isBlank(str2)){System.out.println("------调用isBlank()方法---str2为空-----");}if(StringUtils.isBlank(str3)){System.out.println("------调用isBlank()方法---str3为空-----");}}

测试结果:

the length of str1:0
the length of str2:1
-------str1为空-----
-------调用isBlank()方法------
------调用isBlank()方法---str1为空-----
------调用isBlank()方法---str2为空-----
------调用isBlank()方法---str3为空-----

结果分析:
1、str1="“和str2=” " 在编译的过程中会给其分配相应的空间,str3 = null则不会被分配空间,所以导致其调用isEmpty()会报空指针异常。

2、str1=""不存放任何字符,导致其调用length()输出为0,调用isEmpty输出为空(true)

3、str2存放空格字符,所以调用length()显示长度为1,调用isEmpty()输出False。值得注意的是,当str2中存放多个空格时,每个空格都会占用一个长度

Java中String字符串:空字符串、存放空的字符串、null的区别相关推荐

  1. java中字符串的创建_【转载】 Java中String类型的两种创建方式

    本文转载自 https://www.cnblogs.com/fguozhu/articles/2661055.html Java中String是一个特殊的包装类数据有两种创建形式: String s ...

  2. Java中String类的concat方法___java的String字符串的concat()方法连接字符串和“+“连接字符串解释

    Java中String类的concat方法 在了解concat()之前,首先需要明确的是String的两点特殊性. 长度不可变 值不可变 这两点从源码中对String的声明可以体现: private ...

  3. Java中String字符串截取几种方法(substring,split)

    Java中String字符串截取几种方法 substring,split 这是一个Java中的String的基础用法的演示. 下面通过代码对大家进行讲解 substring 这里用来ndexOf,la ...

  4. Java中String 字符串与List<String>互转

    Java中String 字符串与List互转 大家好,我是酷酷的韩~ 1.String转List public static void main(String[] args) {String aa = ...

  5. java中String new和直接赋值的区别

        Java中String new和直接赋值的区别     对于字符串:其对象的引用都是存储在栈中的,如果是编译期已经创建好(直接用双引号定义的)的就存储在常量池中,如果是运行期(new出来的)才 ...

  6. Java中String类的方法及说明

    String : 字符串类型 一.构造函数      String(byte[ ] bytes):通过byte数组构造字符串对象.      String(char[ ] value):通过char数 ...

  7. JAVA中String类

    1.String类定义的变量是不可变得 eg:String s0="kvill"; String s1 = new String("kvill"); 为什么要设 ...

  8. 【转载】Java中String类的方法及说明

    转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.构造函数      String ...

  9. Java中String是个什么类型?

    Java中String是个什么类型 Java中的八大基本数据类型 String 是个什么类型 String常见的方法 Java中的八大基本数据类型 面试官的套路 Java中的数据类型分为四类 1.整型 ...

最新文章

  1. 线性求[1,P-1]的逆元
  2. css 字体大小_用一个 CSS 属性打造自适应网站
  3. 水杯测试----误人子弟啊!
  4. 【转】关于char * 与 char[]
  5. xp系统中的隐藏文件不能显示 解决方案
  6. Ancient Distance(妙啊!!!) [2020牛客暑期多校训练营(第四场)]
  7. nginx搭建高性能流媒体技术
  8. 基于Android的数据传输wifi,毕业设计之 ---基于Android的文件实时传输系统
  9. Linux 上的NetworkManager示例
  10. html摄氏度转换华氏度,摄氏和华氏转换器-JavaScript
  11. cesium polygon添加边界线不起作用
  12. 成都拓嘉辰丰电商:拼多多全店推广的作用
  13. asp.net面试题
  14. Java SE菜鸟之异常
  15. Oracle导出数据库数据为dmp文件(存在空表情况)
  16. CCNA 认证学习(二)
  17. 数字经济下的发展挑战
  18. 海明码java编程,海明码校验程序设计
  19. Python定义常量,设置config.py文件
  20. OJ(网络测试平台)的正确打开方式(C/C++)

热门文章

  1. python做游戏用什么库_Python库之游戏开发及虚拟现实
  2. 天正T20 V5.0软件及安装破解教程
  3. 英国豪迈收购Static Systems,大力推进医疗市场
  4. 蓝桥杯报名Java得奖率_夺冠概率--蓝桥杯
  5. chewing的作业——数字信封实现文件传输
  6. 2020年中国网络经济年度洞察报告
  7. web动画(Animation) - 过渡效果transition
  8. p2p传输php,P2P在IPTV中解决数据服务器传输瓶颈
  9. 电子商务行业客户服务常见问题FAQ
  10. 活动策划进阶指南:细节决定成败