Java 中,经常需要对多个字符串进行 null 值判断。传统的做法是逐个判断每个字符串是否为 null,比较繁琐。有几种方法可以简化这一过程,提高代码的可读性。本文主要介绍Java中,同时判断多个字符串是否为空值null的方法代码。最终目的是使代码更简单。

一般情况下的写法

String s = null;
if (str1 != null) {
s = str1;
} else if (str2 != null) {
s = str2;
} else if (str3 != null) {
s = str3;
} else {
s = str4;
}

1、使用Stream的写法

经常需要对多个字符串进行null值判断。传统的做法是使用循环逐个判断,比较繁琐。Java 8引入的Stream API提供了一种更简洁、优雅的处理方式。

import java.util.Objects;
import java.util.stream.Stream;

public class Main {
    public static void main(String[] args) {
        String str1 = null;
        String str2 = null;
        String str3 = "Hello, World!";
        String str4 = "Default Value";

        String result = Stream.of(str1, str2, str3)
                .filter(Objects::nonNull)
                .findFirst()
                .orElse(str4);

        System.out.println("The first non-null string is: " + result);
    }
}

import java.util.Arrays;
import java.util.Objects;
import java.util.Optional;

public class Main {

    // 定义firstNonNull方法,返回第一个非null的字符串的Optional
    public static Optional<String> firstNonNull(String... strings) {
        return Arrays.stream(strings)
                .filter(Objects::nonNull)
                .findFirst();
    }

    public static void main(String[] args) {
        String str1 = null;
        String str2 = null;
        String str3 = "Hello, World!";
        String str4 = "Default Value";

        // 使用firstNonNull方法,获取第一个非null的字符串,或者返回默认值
        String result = firstNonNull(str1, str2, str3).orElse(str4);

        System.out.println("The first non-null string is: " + result);
    }
}

2、使用三元运算符

可以嵌套使用三元运算符,但过多的嵌套会降低代码的可读性。

String s = 
str1 != null ? str1 :
str2 != null ? str2 :
str3 != null ? str3 : str4
;

3、使用for循环判断

传统的做法是逐个判断每个字符串是否为null,比较繁琐。使用for循环可以简化这一过程,提高代码的可读性。

String[] strings = {str1, str2, str3, str4};
for(String str : strings) {
s = str;
if(s != null) break;
}

推荐文档

相关文档

大家感兴趣的内容

随机列表