java - 在 Java 中返回连接字符串并检查 null 或空的最佳方法是什么?

标签 java string

我有两个字符串,每个字符串都可以为空(按 StringUtils 定义为空或为空)。我需要以串联方式显示它们,中间有一个简单的字符,例如破折号、逗号等。

例如,一个人的名字由姓氏和名字组成。 PrintName 方法应该以这种方式打印:

情况a:均不为空

打印姓氏+“,”名字

情况 b:名字为空

打印姓氏

案例 c:姓氏为空

打印名字

情况 d:两者都是空

打印空字符串

这只是一个简单的练习,但我很好奇 Java 中是否有一种最有效的方法,需要最少的变量/内存分配、更少的代码行等等......我对效率的定义是有点模糊,所以如果你能写下为什么你认为它更有效,那就太好了。

最佳答案

如果它只是两个字符串,并且它们是空的,而不是 null,我会选择

System.out.println(
    lastName
    + (( firstName.length() > 0 && lastName.length() > 0 ) ? ", " : "")
    + firstName
);

说明:仅当两个字符串都非空时,中间表达式将为“,”。

在所有其他情况下,中间部分和其他一个或两个部分都是空的。因此,仅打印整面。

如果你想使用 StringUtils 的定义,代码是:

System.out.println(
    StringUtils.stripToEmpty(lastName)
    + (( StringUtils.isNotBlank(firstName) && StringUtils.isNotBlank(lastName) ) ? ", " : "")
    + StringUtils.stripToEmpty(firstName)
);

关于java - 在 Java 中返回连接字符串并检查 null 或空的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26400325/

相关文章:

java - 在 Java 中,如何更有效地附加字符串?

java - 即使 containsKey() 返回 true,从 HashMap 检索时也会出现空指针异常

java - 如何计算 LinkedList<String> 的实际大小(以字节为单位)?

python - 如何使用字符串格式使用 "{0.word}"

java - 如何从多行字符串输出中获取字符串的多个实例

string - 如何通过可选复选框将字符串参数添加到Jenkins

java - java堆栈跟踪中打印的问号(?)符号

java - 获取 "Deadlock found when trying to get lock; try restarting transaction"

c++ - 如何从数组 C++ 中获取唯一字符串

c - 为什么指针为所有数组 block 提供相同的地址?