Javaストリームを使用して、ファイル内のすべての単語を数えます

user10824969:

私は、テキストファイルにユニークな単語の数をカウントしようとしていました。簡略化のために、私の現在のファイルの内容は次のとおりです。

これはサンプルファイルです

私の試みは次のとおりです。

long wordCount = 
    Files.lines(Paths.get("sample.txt"))
         .map(line -> line.split("\\s+"))
         .distinct()
         .count();
System.out.println(wordCount);

このコンパイルと実行の罰金が、結果はで1、それがされるべきです5

彼らは次のとおりでした:

あなたが変換アレイ(各ラインマッピングするStream<String>にはStream<String[]>、その後、配列の要素の数を(ファイルの行数をIE)カウント。

あなたは使用する必要がありますflatMap作成するために、Stream<String>ファイル内のすべての単語のを、そして後distinct()count()操作、あなたは明確な単語の数を取得します。

long wordCount = 
    Files.lines(Paths.get("sample.txt"))
         .flatMap(line -> Arrays.stream(line.split("\\s+")))
         .distinct()
         .count();

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=167470&siteId=1