思路:判断某字符串是否为空,为空的标准是str==null或str.length()==0

一.空字符串与null区别

1、类型

null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;

2、内存分配

String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;String str = "";    表示声明一个字符串类型的引用,其值为""空字符串,这个str引用指向的是空字符串的内存空间;

在java中变量和引用变量是存在栈中(stack),而对象(new产生的)都是存放在堆中(heap):

就如下:

String str = new String("abc") ;

ps:=左边的是存放在栈中(stack),=右边是存放在堆中(heap)。

3、示例程序:

public class String_Demo01 {

public static void main(String[] args) {

String str1 = new String() ;

String str2 = null ;

String str3 = "" ;

System.out.println(str1==str2);                //内存地址的比较,返回false

System.out.println(str1.equals(str2));         //值的比较,返回false

System.out.println(str2==str3);                //内存地址的比较,返回false

System.out.println(str3.equals(str2));         //值的比较,返回false

System.out.println(str1==str3);                //内存地址的比较,返回false

System.out.println(str1.equals(str3));         //值的比较,返回true

}

}

通过如上的程序可以得出如下结论:

字符串对象与null的值不相等,且内存地址也不相等;空字符串对象与null的值不相等,且内存地址也不相等;new String()创建一个字符串对象的默认值为"" (String类型成员变量的初始值为null)

4.Java判断字符串常见方法

方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低:

if(s == null || s.equals(""));方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:

if(s == null || s.length() == 0);方法三: Java SE 6.0 才开始提供的方法, 效率和方法二几乎相等, 但出于兼容性考虑, 推荐使用方法二.

if(s == null || s.isEmpty());

方法四: 这是一种比较直观,简便的方法,而且效率也非常的高,与方法二、三的效率差不多:

if (s == null || s == "");

注意:s == null 是有必要存在的.

如果 String 类型为null, 而去进行 equals(String) 或 length() 等操作会抛出java.lang.NullPointerException.

并且s==null 的顺序必须出现在前面,不然同样会抛出java.lang.NullPointerException.

如下Java代码:

String str = null;

if(str.equals("") || str == null){//会抛出异常

System.out.println("success");

}

五、StringUtils的isBlank与isEmply

1.public static boolean isEmpty(String str)

判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0

下面是 StringUtils 判断是否为空的示例:

StringUtils.isEmpty(null) = true

StringUtils.isEmpty("") = true

StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理

StringUtils.isEmpty("   ") = false

StringUtils.isEmpty("bob") = false

StringUtils.isEmpty(" bob ") = false

2.public static boolean isNotEmpty(String str)

判断某字符串是否非空,等于 !isEmpty(String str)

下面是示例:

StringUtils.isNotEmpty(null) = false

StringUtils.isNotEmpty("") = false

StringUtils.isNotEmpty(" ") = true

StringUtils.isNotEmpty("         ") = true

StringUtils.isNotEmpty("bob") = true

StringUtils.isNotEmpty(" bob ") = true

3.public static boolean isBlank(String str)

判断某字符串是否为空或长度为0或由空白符(whitespace) 构成

下面是示例:

StringUtils.isBlank(null) = true

StringUtils.isBlank("") = true

StringUtils.isBlank(" ") = true

StringUtils.isBlank("        ") = true

StringUtils.isBlank("\t \n \f \r") = true   //对于制表符、换行符、换页符和回车符

StringUtils.isBlank()  //均识为空白符

StringUtils.isBlank("\b") = false   //"\b"为单词边界符

StringUtils.isBlank("bob") = false

StringUtils.isBlank(" bob ") = false

4.public static boolean isNotBlank(String str)

判断某字符串是否不为空且长度不为0且不由空白符(whitespace) 构成,等于 !isBlank(String str)

下面是示例:

StringUtils.isNotBlank(null) = false

StringUtils.isNotBlank("") = false

StringUtils.isNotBlank(" ") = false

StringUtils.isNotBlank("         ") = false

StringUtils.isNotBlank("\t \n \f \r") = false

StringUtils.isNotBlank("\b") = true

StringUtils.isNotBlank("bob") = true

StringUtils.isNotBlank(" bob ") = true

java判断字符是否为0_Java判断字符串是否为空相关推荐

  1. python判断字符类型编程_python判断字符类型怎么做

    设str为字符串 str.isalnum() 所有字符都是数字或字母(推荐学习:Python视频教程) str.isalpha() 所有字符都是字母 str.isdigit() 所有字符都是数字 st ...

  2. PHP函数-判断字符是否在于指定的字符串中

    php中判断一个字符是否在字符串中 1.函数 以下四个函数都可以用来判断字符串中是否存在待查询的字符,可以是数字.字母或者符号. strpos() - 查找字符串在另一字符串中第一次出现的位置(区分大 ...

  3. java string 字符个数字_java从字符串中提取数字

    string类函数的补充说明: trim()方法返回调用字符串对象的一个副本,但是所有起始和结尾的空格都被删除了,例子如下:String s=" Hello World ".tri ...

  4. php 字符串属性,php判断字符以及字符串的包含方法属性

    php判断字符以及字符串的包含方法属性 下面介绍使用方法: 1. strstr: 返回一个从被判断字符开始到结束的字符串,如果没有返回值,则不包含 复制代码 代码如下: /*如手册上的举例*/ $em ...

  5. android 判断字符相等,字符串的截取,判断字符串是否相等和字符串是否为空的方法总结Java,Android...

    最近做项目Android时遇到了字符串的截取,判断字符串是否相等和字符串是否为空问题刚好用的上自己也知道些,所以整理了方便以后用,和供大家参考,有什么更好的方法或者其它方法我么可以一起交流,谢谢大家! ...

  6. java判断字符个数_使用Java判断字符串中的中文字符数量

    Java判断一个字符串str中中文的个数,经过总结,有以下几种方法(全部经过验证),可根据其原理判断在何种情况下使用哪个方法: 1. 1 char[] c =str.toCharArray();2 f ...

  7. java 判断字符和字符串是否为全角字符

    java 判断字符和字符串是否为全角字符 一般这个判断在对未知字符串进行字符转码的时候要用到. // 判断字符串是否为全角String input = "dd";System.ou ...

  8. java 判断字符 不等于 或者_java中字符串不等于怎么判断

    java中字符串不等于可以使用equals()方法判断,equals()方法用于将字符串与指定的对象比较. 语法public boolean equals(Object anObject) 参数 an ...

  9. java判断是否第一次出现_利用java判断字符首次出现的位置,java替换最后一个特定字符...

    利用java判断字符首次出现的位置利用爪哇判断字符首次出现的位置, 目的: (学习视频分享:java视频教程 实现代码如下: 导入Java.util.收藏品: 导入Java.util.LinkedLi ...

  10. java 判断是否包含中文_Java 判断字符串是否包含中文正则表达式

    在java中如果我们要判断字符或字符串是否是中文或包含中文我们都可以利用\\u4e00-\\u9fa5这样来带正则验证了,下面看两个我收集的实例. 注意:Java的字符串要先对\做转义-- 其次是因为 ...

最新文章

  1. 5000量子比特的商用计算平台发布!D-Wave:这是商业应用的唯一选择
  2. 读《Linux内核设计与实现》我想到了这些书
  3. 如何自学python基础-零基础如何自学成为Python高手?我有几点干货
  4. 大数据技术原理与应用-概述
  5. NEC公司日前正式回绝了AMD的传唤请求
  6. React 通过style来设置背景图片。
  7. c语言例题 3/100
  8. GoogleNews-vectors-negative300.bin文件下载
  9. vue 富文本编辑器 —— wangEditor
  10. itextpdf字体编码研究
  11. 微信扫码下载APP解决方案
  12. Android 自定义viewGroup实现淘宝二楼及处理多指触控事件
  13. keil 调试指针不跳转 0x00000000 0000 MOVS r0,r0 解决方案
  14. wordpress后台打开速度非常慢怎么办
  15. 在 Amazon SageMaker 上玩转 Stable Diffusion: 基于 Dreambooth 的模型微调
  16. DPDK支持的硬件:CPU、网卡NIC、加密引擎、基带加速器
  17. 视频播放–AVPlayer
  18. 如何实现页面广告随时上下线、过期自动下线及到时自动上线
  19. 算法租用游艇问题c语言,动态规划租用游艇问题
  20. Python 打造微信群聊天机器人(带操作界面)

热门文章

  1. NetBeans启动firstcup错误
  2. matlab 产生任意概率密度的联合分布
  3. 计算机长宽高公式,单位换算公式大集合
  4. html整体居中文字,html文字居中 html图片居中代码
  5. 手机QQ空间如何显示和修改手机机型型号
  6. 银行管理系统(一看就懂)
  7. php运行日志在哪里看,thinkphp错误日志在哪
  8. PHP时间戳和日期相互转换操作总结
  9. matlab gui界面的优点,关于Matlab GUI界面设计的一些了解
  10. 低功耗验证 (二)UPF,低功耗流程,VCS NLP