如果我有
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)
我会想出一个捕获意图的实用方法,它提高了可读性并允许轻松重用:
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)