java中判断String类型为空和null的几种方法

 更新时间:2024年06月07日 09:56:18   作者:Starlet33  
判断一个字符串是否为空或者为null是一个常见的操作,本文主要介绍了java中判断String类型为空和null的几种方法,具有一定的参考价值,感兴趣的可以了解一下

在Java中,判断一个字符串是否为空或者为 null 是一个常见的操作。以下是几种常见的方法来实现这个判断:

1. 使用 == 和 isEmpty()

这是最基础的方式,用来判断字符串是否为 null 或者为空字符串。

String str = ...;

if (str == null || str.isEmpty()) {
    // 字符串为 null 或空字符串
}

2. 使用 == 和 length()

另一种方式是检查字符串的长度是否为0。

String str = ...;

if (str == null || str.length() == 0) {
    // 字符串为 null 或空字符串
}

3. 使用 Apache Commons Lang

如果你使用了Apache Commons Lang库,可以使用 StringUtils 类,它提供了更加简洁的方法。

首先,需要在你的项目中添加依赖(如果使用Maven):

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version> <!-- 请根据需要选择版本 -->
</dependency>

然后,可以使用如下方法:

import org.apache.commons.lang3.StringUtils;

String str = ...;

if (StringUtils.isEmpty(str)) {
    // 字符串为 null 或空字符串
}

4. 使用 Java 11 的 isBlank()

Java 11 引入了 String 类的新方法 isBlank(),它不仅检查字符串是否为空,还会检查字符串是否只包含空白字符(如空格、制表符等)。

String str = ...;

if (str == null || str.isBlank()) {
    // 字符串为 null、空字符串或仅包含空白字符
}

5. 使用 Objects 类的 requireNonNullElse 方法

在需要提供默认值的情况下,可以使用 Objects 类的 requireNonNullElse 方法,它可以在字符串为 null 时提供一个默认值。

import java.util.Objects;

String str = ...;

str = Objects.requireNonNullElse(str, "");

if (str.isEmpty()) {
    // 字符串为 null 或空字符串
}

示例

import org.apache.commons.lang3.StringUtils;

public class StringTest {
    public static void main(String[] args) {
        String str1 = null;
        String str2 = "";
        String str3 = " ";

        // 方法1: 使用 == 和 isEmpty()
        if (str1 == null || str1.isEmpty()) {
            System.out.println("str1 is null or empty");
        }

        if (str2 == null || str2.isEmpty()) {
            System.out.println("str2 is null or empty");
        }

        // 方法2: 使用 == 和 length()
        if (str2 == null || str2.length() == 0) {
            System.out.println("str2 is null or empty");
        }

        // 方法3: 使用 Apache Commons Lang
        if (StringUtils.isEmpty(str2)) {
            System.out.println("str2 is null or empty (using StringUtils)");
        }

        // 方法4: 使用 Java 11 的 isBlank()
        if (str3 == null || str3.isBlank()) {
            System.out.println("str3 is null, empty or blank");
        }

        // 方法5: 使用 Objects 的 requireNonNullElse
        str1 = Objects.requireNonNullElse(str1, "");

        if (str1.isEmpty()) {
            System.out.println("str1 is null or empty (using Objects.requireNonNullElse)");
        }
    }
}

到此这篇关于java中判断String类型为空和null的几种方法的文章就介绍到这了,更多相关java String类型为空和null内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring Boot整合Spring Security简单实现登入登出从零搭建教程

    Spring Boot整合Spring Security简单实现登入登出从零搭建教程

    这篇文章主要给大家介绍了关于Spring Boot整合Spring Security简单实现登入登出从零搭建的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-09-09
  • jwt原理及Java中实现过程

    jwt原理及Java中实现过程

    JWT是无状态认证的JSON令牌,包含头部、载荷和签名,用于身份验证与权限管理,需注意设置过期时间、使用非对称算法、安全存储传输,及合理刷新策略,确保系统安全与效率
    2025-08-08
  • 如何使用spring ResponseEntity处理http响应

    如何使用spring ResponseEntity处理http响应

    这篇文章主要介绍了如何使用spring ResponseEntity处理http响应的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • java面试常问的Runnable和Callable的区别

    java面试常问的Runnable和Callable的区别

    大家好,本篇文章主要讲的是java面试常问的Runnable和Callable的区别,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Java反射使用的详细介绍(最新推荐)

    Java反射使用的详细介绍(最新推荐)

    这篇文章主要介绍了Java反射使用的详细介绍,反射的第一步都是先得到编译后的Class类对象,然后就可以得到Class的全部成分,本文结合实例代码详细讲解,需要的朋友可以参考下
    2023-02-02
  • Java实现为图片添加水印功能

    Java实现为图片添加水印功能

    在图像处理领域,水印是一种常见的保护版权和标识图片归属的方法,Java提供了强大的图像处理能力,可以通过Graphics2D类在图像上绘制水印,下面我们来看看具体操作步骤吧
    2025-02-02
  • 解决json字符串序列化后的顺序问题

    解决json字符串序列化后的顺序问题

    这篇文章主要介绍了解决json字符串序列化后的顺序问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • Mybatis之association和collection用法

    Mybatis之association和collection用法

    这篇文章主要介绍了Mybatis之association和collection用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java中的concurrenthashmap集合详细剖析

    Java中的concurrenthashmap集合详细剖析

    这篇文章主要介绍了Java中的concurrenthashmap集合详细剖析,有参构造后第一次put时会进行初始化,由源码可知,会先判断所传入的容量是否>=最大容量的一半,如果满足条件,就会将容量修改为最大值,反之则会将容量改为所传入数*1.5+1,需要的朋友可以参考下
    2023-11-11
  • Java中的System.arraycopy()浅复制方法详解

    Java中的System.arraycopy()浅复制方法详解

    这篇文章主要介绍了Java中的System.arraycopy()浅复制方法详解,Java数组的复制操作可以分为深度复制和浅度复制,简单来说深度复制,可以将对象的值和对象的内容复制;浅复制是指对对象引用的复制,需要的朋友可以参考下
    2023-11-11

最新评论