簡體   English   中英

字符串拆分、過濾和加入單行 java 8

[英]String split, filter and join in single line java 8

我有字符串,我想用逗號分隔並檢查每個字符串中的特定單詞,然后修剪然后加入它以創建新字符串

輸入:

"UC_Admin, Internal, UC_Reg, US_Admin"

所需的 Output:

 "UC_Admin,UC_Reg"

我嘗試的是:

Arrays.stream("UC_Admin,Internal,UC_Reg,US_Admin".split(","))
      .filter(role -> role.contains("UC").join(",");

你必須在這里使用Collectors.joining(",") 另請注意,對於修剪操作,您只能使用map運算符。

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(","));

使用Collectors.joining作為字符串收集 output:

final String DELIMITER = ",";
final String input = "UC_Admin, Internal, UC_Reg, US_Admin";
String output = Arrays.stream(input.split(DELIMITER)) //split and stream
        .filter(role -> role.contains("UC")) // filter in string containing 'UC'
        .map(String::trim) // trim the strings
        .collect(Collectors.joining(DELIMITER)); // join them back

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM