簡體   English   中英

如何從Java Stream獲取以該數字開頭的每個數字的數字?

[英]How to get for each digit number of numbers that start with that digit from Java Stream?

我給了一個包含數字和單詞的文字。

如何從每個數字中獲取以該數字開頭的文本中的數字?

我想在這里使用Java Streams。

我設法過濾所有數字:

Files.lines(Paths.get("/path/to/file/text.txt"))
     .filter(Pattern.compile("\\d+").asPredicate())

但這是艱難的部分。 如何計算每個數字以它開頭的數字?

您可以在過濾后按初始字符進行分組,並將數據放入Map<Character,Integer>

Map<Character,Integer> digCount = Files
    .lines(Paths.get("/path/to/file/text.txt"))
    .filter(Pattern.compile("\\d+").asPredicate())
    .collect(Collectors.groupingBy(s -> s.charAt(0), Collectors.summingInt(s->1)));
for (Map.Entry<Character,Integer> e : digCount.entrySet()) {
    System.out.println(e.getKey()+" "+e.getValue());
}

演示。

暫無
暫無

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

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