将空字符串转换为""

dwj*_*ton 2 java null

如果我有

String a = null;
System.out.println(a);
Run Code Online (Sandbox Code Playgroud)

我去拿

null

有没有一种优雅的方法来改变这个空字符串?

我可以:

if (a == null){
a="";
}
Run Code Online (Sandbox Code Playgroud)

上下文是我将生成一个形式的字符串:

String myString = a + "\n" + b + "\n" + c;

但我想知道是否有更好的解决方案.

sha*_*ats 11

您可以使用三元运算符尝试这样做.

System.out.println(a == null ? "" : a);
Run Code Online (Sandbox Code Playgroud)

另外,您可以使用chrylis defaultString()建议的Commons Lang3函数,

System.out.println(StringUtils.defaultString(a));
Run Code Online (Sandbox Code Playgroud)


Boh*_*ian 5

我会想出一个捕获意图的实用方法,它提高了可读性并允许轻松重用:

public static String blankIfNull(String s) {
    return s == null ? "" : s;
}
Run Code Online (Sandbox Code Playgroud)

然后在需要时使用它:

System.out.println(blankIfNull(a));
Run Code Online (Sandbox Code Playgroud)