当前位置: 首页 > 面试题库 >

在Java 8中使用分隔符连接字符串值以处理null和空字符串?

贺浩壤
2023-03-14
问题内容

在Java 8中,我有一些String值,并且我想以逗号分隔的有效值列表结尾。如果String为 null或为空,
我想忽略它。我知道这似乎很普遍,很像这个老问题 ;
但是,该讨论并未解决null和空格(我也不喜欢公认的答案)。

我看过Java 8 StringJoiner,公用StringUtils(联接)和可信赖的番石榴(Joiner),但是似乎没有一个完整的解决方案。愿景:

 where: val1="a", val2=null, val3="", val4="b"

  String niceString = StringJoiner.use(",").ignoreBlanks().ignoreNulls()
    .add(val1).add(val2).add(val3).add(val4).toString();

会导致niceString =“ a,b”

有没有很好的方法可以做到这一点(不涉及for循环,将字符串加载到列表中和/或使用正则表达式替换来删除不良条目)?


问题答案:

String joined =
Stream.of(val1, val2, val3, val4)
.filter(s -> s != null && !s.isEmpty())
.collect(Collectors.joining(“,”));



 类似资料:
  • 问题内容: 我有以下代码 输出为。 Java如何完成字符串连接的技巧? 问题答案: 因为Java将表达式转换为类似 实际上,我认为它可能使用s,因此: 解决更高效 这使用“ 字符串”构建器上的方法(针对每种类型),这些方法可以正确处理

  • 如何将过滤器列表拆分为单个过滤器元件?split2String在线程“main”java.util.regex中导致:异常。PatternSyntaxException:索引10或(|和)附近的未闭合组(

  • 我是 Perl 的新手,但根据我阅读的文档,看起来 Perl 中的 split 函数要求正则表达式模式而不是字符串分隔符作为第一个参数,但我发现使用 之类的东西仍然可以正确拆分字符串。 基于此,我尝试使用可变分隔符(例如。< code>print (split($var,$ string))[0] where < code > $ var = ' ' )并发现它不起作用。我做错了什么? 谢谢! 编

  • 问题内容: 我需要定界包含新行的字符串。我将如何实现?请参考下面的代码。 输入: 所需的输出: 我尝试了以下方法: 问题答案: 方法应该为您提供确切的信息。

  • 我有一个正在解析的JSON字符串,我想检索字段“pr_num”的值。我收到这个错误: 我的代码如下: 我想获取字段的值,它们是690052和null。 jsonString如下所述