將流連線到單個 String

經常遇到的用例是從流建立 String,其中 stream-items 由特定字元分隔。Collectors.joining() 方法可以用於此,如下例所示:

Stream<String> fruitStream = Stream.of("apple", "banana", "pear", "kiwi", "orange");

String result = fruitStream.filter(s -> s.contains("a"))
           .map(String::toUpperCase)
           .sorted()
           .collect(Collectors.joining(", "));
           
System.out.println(result);

輸出:

蘋果,香蕉,橙子,梨

Collectors.joining() 方法還可以滿足字首和字尾:

String result = fruitStream.filter(s -> s.contains("e"))
           .map(String::toUpperCase)
           .sorted()
           .collect(Collectors.joining(", ", "Fruits: ", "."));
           
System.out.println(result);

輸出:

水果:蘋果,橙子,梨。

住在 Ideone 上