将空字符串转换为""

时间:2015-04-09 03:21:55

标签: java null

如果我有

String a = null;
System.out.println(a);

我会得到

null

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

我能做到:

if (a == null){
a="";
}

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

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

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

4 个答案:

答案 0 :(得分:11)

您可以使用ternary operator尝试这样做。

System.out.println(a == null ? "" : a);

Alernatively,你可以使用chrylis建议的Commons Lang3函数defaultString()

System.out.println(StringUtils.defaultString(a));

答案 1 :(得分:5)

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

public static String blankIfNull(String s) {
    return s == null ? "" : s;
}

然后在需要时使用它:

System.out.println(blankIfNull(a));

答案 2 :(得分:2)

你可以写一个varargs方法

public static String concat(String... arr) {
    StringBuilder sb = new StringBuilder();
    for (String s : arr)
        if (s != null)
            sb.append(s);
    return sb.toString();
}

然后你可以做

String myString = concat(a, "\n", b, "\n", c);

答案 3 :(得分:2)

Apache commons lang3有一个可以执行此操作的功能。

import org.apache.commons.lang3.StringUtils;

a = null;
System.out.println(StringUtils.defaultString(a));
相关问题