使用分隔符连接字符串并剥离空字符串

IMJ*_*MJS 6 java string

我需要以下代码逻辑:

这是三个String变量,

String s1 = "A"; String s2 = "B"; String s3 = "C";
Run Code Online (Sandbox Code Playgroud)

我需要根据给定的场景得到以下输出:

  • 场景#1实际输出应为"A/B/C"
  • 场景#2当s1为空时,输出应为"B/C"
  • 场景#3当s2为空时,输出应为"A/C"
  • 场景#4当s3为空时,输出应为"A/B"

这可能使用三元运算吗?

jhu*_*vis 10

您可以在Guava类Joiner和Apache Commons Lang StringUtils.defaultIfBlank的帮助下完成:

Joiner.on("/").skipNulls().join(
  defaultIfBlank(s1, null),
  defaultIfBlank(s2, null),
  defaultIfBlank(s3, null)
);
Run Code Online (Sandbox Code Playgroud)

如果需要处理任意数量的字符串,可以将三行"defaultIfBlank"提取到带循环的方法中.


cod*_*ict 2

你可以做:

result = ((s1==null)?"":(s1+"/"))+((s2==null)?"":(s2+"/"))+((s3==null)?"":s3);
Run Code Online (Sandbox Code Playgroud)

看见