将流连接到单个 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 上