java - 在 Java 中连接空字符串的正确方法是什么?

标签 java string concat

我知道以下几点:

String s = null;
System.out.println("s: " + s);

将输出:s: null

如何让它只输出 s: ​

在我的情况下,这很重要,因为我必须从 4 值、s1、s2、s3、s4String >其中每个值可能有也可能没有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/

相关文章:

python - 使用 pandas 的 df.to_csv 方法不适用于空格作为分隔符

javascript - 无法在 Java websocket 中获取当前客户端以外的打开 session 。

python - 由于 arg 错误,无法使用字符串变量创建实例

c++ - std::string::back()

python - 处理ValueError : cannot reindex from a duplicate axis的便捷方式

MySql - 在查询中使用左外连接进行连接

java - 根据java中的输入值准备查询

java - 在 Java 中将名称格式从 "Last, First MI."更改为 "First MI. Last"

java - 如何验证只输入小数或整数,而不是单独的符号。(android)

python - 将 Python 字符串分解为其字符