小编use*_*410的帖子

java将单个数字流转换为范围

我想将数字对转换为一系列整数,以便我可以对它们执行函数.例如,以下每一行:

1-4
5-6
1-2
4-7
Run Code Online (Sandbox Code Playgroud)

应转换为数组,即:[1,2,3,4].我的目标是计算最常见的数字.我试图像单词计数示例那样做,但问题是如何从每行中的两个数字创建范围流?

Path path = Paths.get(args[0]);
    Map<String, Long> wordCount = Files.lines(path)
            .flatMap(line -> Arrays.stream(line.trim().split("-")))
            .
            .map(word -> word.replaceAll("[^a-zA-Z]", "").toLowerCase().trim())
            .filter(num -> num.length() > 0)
            .map(number -> new SimpleEntry<>(number, 1))
            .collect(Collectors.groupingBy(SimpleEntry::getKey, Collectors.counting()));
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

6
推荐指数
1
解决办法
141
查看次数

标签 统计

java ×1

java-8 ×1

java-stream ×1