我在下面设置该流并不能对.MAP使用的方法计数()。只有在过滤器。但是我还没有设置任何过滤条件。我怎么能做到这一点的字符串低于此流的阵列上?
我想给出的replaceAll正则表达式进行梳理串并获得唯一的字符串,并获得唯一的字符串的总数量。
Stream newStream = Arrays.stream(arr)
.map(s -> s.replaceAll("[^a-z]", ""))
.distinct()
如果你要算distinct
串的数量,你可以不喜欢它:
long countDistinct = Arrays.stream(arr)
.map(s -> s.replaceAll("[^a-z]", ""))
.distinct() // intermediate operation with unique strings as 'Stream' return type
.count(); // terminal operation with count of such strings as return type
我不知道我完全理解你的要求。看来要与应用正则表达式的阵列中的每个元素后排序的不同串的List
。这List
将有两个元素及其次数:
List<String> list = Arrays.stream(arr)
.map(s -> s.replaceAll("[^a-z]", ""))
.distinct()
.sorted()
.collect(Collectors.toList());
现在,list
持有的元素。如果你也想知道有多少元素包含,只需使用List.size
方法:
int count = list.size();
编辑:如果您还需要一个Stream
与琴弦改变,唯一和分类,只需创建从Stream
新list
:
Stream<String> newStream = list.stream();