java 流拆分_java - 在Java流中拆分字符串? - SO中文参考 - www.soinside.com
嘗試一下:String fileName = "file.txt";
try {
Map wordCount = Files.lines(Path.of(fileName))
.flatMap(line -> Arrays.stream(line.split("\\s+")))
.filter(w->w.matches("[a-zA-Z]+"))
.sorted(Comparator.comparing(String::length)
.thenComparing(String.CASE_INSENSITIVE_ORDER))
.collect(Collectors.groupingBy(w -> w,
LinkedHashMap::new, Collectors.counting()));
wordCount.entrySet().forEach(System.out::println);
}catch (Exception e) {
e.printStackTrace();
}
這相對簡單。它只是在空白處分割并通過將單詞放入地圖(其中Key是單詞,而Value是包含計數的long)來對單詞進行計數。
我提供了一個過濾器,僅捕獲字母以外的單詞。它的工作方式是將Lines放入流中。然后使用String.split將每一行拆分為多個單詞。由于這會創建一個數組,因此flatMap會將所有這些單獨的單詞流轉換為單個單詞流,并在其中對其進行處理。它的作用是Collectors.groupingBy,它將為每個鍵以特定方式將值分組。在這種情況下,我指定了Collectors.counting()方法來增加每次出現鍵(即單詞)時的計數。
作為一種選擇,我先對單詞進行長度排序,然后按字母順序排序,忽略大小寫。
總結
以上是生活随笔為你收集整理的java 流拆分_java - 在Java流中拆分字符串? - SO中文参考 - www.soinside.com的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: httpsrequest java_ja
- 下一篇: 遇见你的猫物品怎么摆出与收起