Java中判断String类型为空和null的方法

简介: Java中判断`String`变量是否为空或`null`需用`== null`和`.isEmpty()`。示例代码提供两种方法:`main`方法直接判断,`safeGetString`方法提供默认值。当输入为`null`或空时,返回默认值。代码包含三个测试案例,分别处理`null`、空字符串和非空非`null`字符串。

1.判断一个String类型的变量是否为空(即长度为0)或者为null

在Java中,判断一个String类型的变量是否为空(即长度为0)或者为null,通常需要使用两个条件语句来进行检查。这是因为null表示变量没有引用任何对象,而空字符串("")表示变量引用了一个没有内容的字符串对象。

下面是一个具体的代码示例,展示了如何判断一个String变量是否为空或null

public class StringCheckExample {
     

    public static void main(String[] args) {
     
        // 定义一个可能为null或空的String变量  
        String myString = null; // 我们可以根据需要更改这个变量的值  

        // 判断String是否为null或空  
        if (myString == null || myString.isEmpty()) {
     
            System.out.println("The string is null or empty.");  
        } else {
     
            System.out.println("The string is not null and not empty. Its value is: " + myString);  
        }  

        // 注意:如果myString是null,直接调用myString.isEmpty()会抛出NullPointerException  
        // 因此我们需要先检查myString是否为null  
    }  

    // 额外的方法,用于安全地检查String是否为空或null,并返回一个默认值  
    public static String safeGetString(String input, String defaultValue) {
     
        return (input == null || input.isEmpty()) ? defaultValue : input;  
    }  

    // 使用safeGetString方法的示例  
    public static void testSafeGetString() {
     
        String myString = null; // 或者 "",或者任何其他的String值  
        String result = safeGetString(myString, "Default Value");  
        System.out.println("The result is: " + result);  
    }  
}

在这个示例中,main方法展示了如何直接判断一个String变量是否为空或null。而safeGetString方法则是一个实用工具方法,它接受一个String输入和一个默认值,如果输入为null或空,则返回默认值,否则返回输入值本身。在testSafeGetString方法中,我们展示了如何使用这个实用工具方法。

2.完整的代码示例

以下是一个完整的Java代码示例,其中包含了判断String是否为null或空("")的逻辑,以及一个辅助方法用于安全地获取字符串或默认值:

public class StringNullOrEmptyCheck {
     

    public static void main(String[] args) {
     
        // 示例1:测试一个为null的字符串  
        String string1 = null;  
        checkString(string1);  

        // 示例2:测试一个空字符串  
        String string2 = "";  
        checkString(string2);  

        // 示例3:测试一个非空非null的字符串  
        String string3 = "Hello, World!";  
        checkString(string3);  

        // 使用safeGetString方法  
        String safeString1 = safeGetString(string1, "默认值");  
        System.out.println("safeString1: " + safeString1);  

        String safeString2 = safeGetString(string2, "默认值");  
        System.out.println("safeString2: " + safeString2);  

        String safeString3 = safeGetString(string3, "默认值");  
        System.out.println("safeString3: " + safeString3);  
    }  

    /**  
     * 检查字符串是否为null或空  
     *  
     * @param input 待检查的字符串  
     */  
    public static void checkString(String input) {
     
        if (input == null || input.isEmpty()) {
     
            System.out.println("字符串是null或空。");  
        } else {
     
            System.out.println("字符串不是null也不是空。其值为: " + input);  
        }  
    }  

    /**  
     * 安全地获取字符串或返回默认值  
     *  
     * @param input         待检查的字符串  
     * @param defaultValue  默认值  
     * @return 输入字符串(如果非null且非空),否则返回默认值  
     */  
    public static String safeGetString(String input, String defaultValue) {
     
        return (input == null || input.isEmpty()) ? defaultValue : input;  
    }  
}

在这个代码中,main方法分别测试了三种情况:null字符串、空字符串和非空非null字符串。对于每种情况,都调用了checkString方法来检查结果。此外,还展示了如何使用safeGetString方法来安全地获取字符串或返回默认值。

目录
相关文章
|
6天前
|
存储 SQL 分布式计算
MaxCompute产品使用合集之表中的某个列设置为string类型,并且超过了8M,该如何处理
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
19天前
|
存储 NoSQL Redis
Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
Redis07命令-String类型字符串,不管是哪种格式,底层都是字节数组形式存储的,最大空间不超过512m,SET添加,MSET批量添加,INCRBY age 2可以,MSET,INCRSETEX
TS定义布尔值,let flag:boolean = true,定义数字类型 let a1:number = 10,赋值 let str1:string = ‘‘,打印c~.log($(str1))
TS定义布尔值,let flag:boolean = true,定义数字类型 let a1:number = 10,赋值 let str1:string = ‘‘,打印c~.log($(str1))
TS,数据类型概述,常见的基本数据类型有number/string/boolean/undefined/null,字符串用““,let food: string = ‘糖葫芦‘,布尔类型
TS,数据类型概述,常见的基本数据类型有number/string/boolean/undefined/null,字符串用““,let food: string = ‘糖葫芦‘,布尔类型
|
22天前
|
Unix
鸿蒙将unix时间戳转换为string类型
鸿蒙将unix时间戳转换为string类型
18 0
|
22天前
4. 解决uni-app开发过程中view、image等标签出现诸如“出现错误:类型“{ class: string; }”的参数不能赋给类型“.......”
4. 解决uni-app开发过程中view、image等标签出现诸如“出现错误:类型“{ class: string; }”的参数不能赋给类型“.......”
24 0
|
Oracle Java 关系型数据库
我的Java开发学习之旅------>解惑Java进行三目运算时的自动类型转换
今天看到两个面试题,居然都做错了。通过这两个面试题,也加深对三目运算是的自动类型转换的理解。 题目1.以下代码输出结果是()。 public class Test { public static void main(String[] args) { int a=5; System.
1010 0
|
13天前
|
Java 调度
Java线程的六种状态
Java线程有六种状态: 初始(NEW)、运行(RUNNABLE)、阻塞(BLOCKED)、等待(WAITING)、超时等待(TIMED_WAITING)、终止(TERMINATED)。
34 1
|
2天前
|
监控 Java
Java并发编程:深入理解线程池
在Java并发编程领域,线程池是提升应用性能和资源管理效率的关键工具。本文将深入探讨线程池的工作原理、核心参数配置以及使用场景,通过具体案例展示如何有效利用线程池优化多线程应用的性能。