java - 字符串拆分,过滤和加入单行 java 8

标签 java string java-8 java-stream

我有一个字符串,我想用逗号分割并检查每个单词中的特定单词,然后修剪然后加入它以创建新字符串

输入:

"UC_Admin, Internal, UC_Reg, US_Admin"

期望输出:
 "UC_Admin,UC_Reg"

我试过的是:
Arrays.stream("UC_Admin,Internal,UC_Reg,US_Admin".split(","))
      .filter(role -> role.contains("UC").join(",");

最佳答案

您必须使用 Collectors.joining(",")这里。另请注意,对于修剪操作,您只能使用 map运算符(operator)。

String result = Arrays.stream("UC_Admin,Internal,UC_Reg,US_Admin".split(","))
    .filter(role -> role.contains("UC"))
    .map(String::trim).collect(Collectors.joining(","));

下面给出了一个更好的方法。对于大型数据集,这应该优于以前的解决方案。但是,我没有进行任何基准测试来证明这一点。
private static final Pattern COMMA = Pattern.compile(",");

String result = COMMA.splitAsStream("UC_Admin,Internal,UC_Reg,US_Admin")
    .filter(role -> role.contains("UC"))
    .map(String::trim)
    .collect(Collectors.joining(","));

关于java - 字符串拆分,过滤和加入单行 java 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58746605/

相关文章:

java - 谷歌上次更新后方向 API 谷歌地图出现问题

java - 有没有办法在 netbeans IDE 中用代码完成 java 的 null 检查?

java - 如何将网络上的adb设备列表存储到php数组中

Python:是否有快捷方式来查找哪个子字符串(来自一组子字符串)在字符串中排在第一位?

Java 8 流映射减少

testing - Java 8 Lambda 的单元测试

java - 在哪里添加 @XMLElement(name ="name") 注释

python - 简单的字符串遇到

java - 在 Java 中将二维整数数组转换为字符和字符串

java - 使用整数的加运算符作为 BiFunction