我知道以下几点:
String s = null;
System.out.println("s: " + s);
将输出:s: null
。
如何让它只输出 s:
?
在我的情况下,这很重要,因为我必须从 4 值、s1、s2、s3、s4
、String >其中每个值可能有也可能没有有 null
值。
我在问这个问题因为我不想检查 s1 到 s4 的每个组合 (即检查这些变量是否为 null
) 或将 "null"
替换为 empty
String
最后,因为我认为可能有一些更好的方法可以做到这一点.
最佳答案
最简洁的解决方案是:
System.out.println("s: " + (s == null ? "" : s));
或者创建或使用静态辅助方法来做同样的事情;例如
System.out.println("s: " + denull(s));
但是,这个问题有一种应用程序过度使用/误用 null
的“味道”。如果 null
具有与非空值的含义不同(并且需要不同)的特定含义,则最好仅使用/返回它。
例如:
- 如果这些空值来自默认初始化为
null
的字符串属性,请考虑将它们显式初始化为""
。 - 不要使用
null
来表示空数组或集合。 - 最好抛出异常时不要返回
null
。 - 考虑使用 Null Object Pattern .
现在显然所有这些都有反例,有时您必须处理一个预先存在的 API,它会为您提供空值......无论出于何种原因。但是,根据我的经验,最好避免使用 null
...大部分时间。
因此,就您而言,更好的方法可能是:
String s = ""; /* instead of null */
System.out.println("s: " + s);
关于java - 在 Java 中连接空字符串的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24583475/