我有两个字符串,每个字符串都可以为空(按 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/