当前位置:首页 > 后端开发 > java 判断字符串是否为空

java 判断字符串是否为空

7个月前 (05-23)26

四种判断为空表示方式:

1、str == null;
2、"".equals(str);
3、str.length() == 0;
4、str.isEmpty();

代码中的四种不为空的运用:

if(str != null && !"".equals(str));//效率相对较低
if(str != null && str.length() > 0); //推荐使用,效率高
if(str != null && !str.isEmpty());//java se 6.0 后出现,出于兼容性的考虑,最好不用
if(str != null && str != "");//效率和二、三差不多(个人不太推荐,前几天写一个业务进行判断后,调试发现str = "",但是还是进入了判断函数,后面换成了方法二,具体原因一直没搞明白)

//后面三种效率都差不多,但综合考虑,根据长度判断字符串是否为空比较好

代码中的四种为空的运用:

if(str == null || "".equals(str)); 
if(str == null || str.length() <= 0);
if(str == null || str.isEmpty());
if(str == null || str == ""); //字符串比较不推荐用‘==’

str == null要放在判断前面的原因:

  1. null 是一个对象的值,非字符串,String str = null,表示声明一个字符串对象的引用,指向为null,此时没有指向任何内存空间。
  2. ""是一个为空的字符串,长度为0,String str = “”,表示声明一个字符串类型的引用,指向的是空字符串的内存空间。
  3. 如果str = null,但是没有放到判断前面,此时操作str.length()和.equals()就会抛出java.lang.NullPointerException异常

参考博客:
Java空字符串与null的区别和判断字符串是否为空的方法
判断字符串String是否为空问题

作者:余三二
来源链接:https://blog.csdn.net/weixin_40626699/article/details/86496600

“java 判断字符串是否为空” 的相关文章

Java 多线程 -- 从入门到精通

Java 多线程 -- 从入门到精通

持续更新中,欢迎收藏,关注,以便查看后续 Java 多线程 -- 从入门到精通 Java...

Java 多线程之线程状态图

Java 多线程之线程状态图

一.线程基本状态图             图中是线程运行的基本状态:线程调用start()方法开始...

Java中的集合和线程安全

通过Java指南我们知道Java集合框架(Collection Framework)如何为并发服务,我们应该如何在单线程和多线程中使用集合(Collection)。 话题有点高端,我们不...

一、java的版本区别、下载、配置、运行机制

一、java的版本区别、下载、配置、运行机制

一、java的版本区别      常用的 java 程序分为  Java SE、Java EE、Java ME三个版本,介绍...

Java历史版本官方下载地址(Java 6、Java 7)

Java 6官方下载地址 https://www.oracle.com/java/technologies/javase-java-archi...

详细分析 Java 中实现多线程的方法有几种?(从本质上出发)

详细分析 Java 中实现多线程的方法有几种?(从本质上出发)

目录 详细分析 Java 中实现多线程的方法有几种?(从本质上出发) 正确的说法(从本质上出发) 经典...

[Java]Axis需要高版本的J2sdk: j2sdk-1_4_2_08

按照 Install Axis 的详尽步骤依次安装了axis-bin-1_2、Tomcat 5.0,也按照要求复制相应的lib文件到Tomcat目录下。 但是,当重新启动Tomcat后,...

java中多线程的实现

1.JAVA多线程实现方式 JAVA多线程实现方式主要有三种:继承Thread类、实现Runnable接口、使用ExecutorService、Callable、Future实现有返回结...

Java常见的23种设计模式是哪些?

Java常见的23种设计模式是哪些?

一、什么是设计模式:         设计模式是一套经过反复使用的代码设计经验,目的是为...

Java多线程(三)

Java多线程(三)

个人博客 http://www.milovetingting.cn Java多线程(三) 前言...