ファイル内の単語の数が少ないの存在を決定します。
テストパッケージ; インポートjava.io.BufferedReader; インポートはjava.io.File; インポートjava.io.FileNotFoundException; インポートjava.io.FileReader; インポートにjava.io.IOException; インポートたjava.util.HashMap; java.utilのインポートクラス。地図; パブリック クラスWordCount1 { 公共 静的 ボイドメイン(文字列[]引数)は、IOExceptionがスロー { // 読み取りのためにストリームファイルを作成する // 読み出しワードに格納されている容器マップを作成する変数を、キー:ワードを、値:数 BufferedReaderのBR = 新しい新しい BufferedReaderの(新しい新規 FileReaderの(" D:" + File.separator + " piao.txt")); // マップ記憶された基準データ型 地図<文字列、整数>マップ= 新しい新しい HashMapの<文字列、整数> (); 文字列のライン = ヌル; // マップされます単語を追加、ファイルの読み込み しばらく((ラインをbr.readLine =())!= NULL ) { // 単一ラインは、読み出しワードに分割されている 文字列[] = line.splitのSPIT(" \ N- "); // スプリット(文字列REGEX)指定に従ってこの文字列を分割する正規表現マッチング。 // 各ワードの配列アウトマップ上の ための(文字列ワード:SPIT) { // 単語が存在するか否かを判定するがある場合、単語がキーである、1〜マップに格納された値 であれば(!map.containsKey(ワード)) // 指定された値にマップが1つまたは複数のキーならば、それはtrueを返します。 { Map.put(ワード、1 ); } そうでは{ //は、単語が存在する場合、値+1の値がマップに配置され、その後除去し、 int型 =値マップ。GET(ワード)+ 1 ; map.put(ワード、値を); } } } システム。OUT .println(マップ); } }
複数のファイル内の単語の統計数:
テストパッケージ; インポートjava.io.BufferedReader; インポートはjava.io.File; インポートjava.io.FileNotFoundException; インポートjava.io.FileReader; インポートにjava.io.IOException; インポートたjava.util.HashMap; java.utilのインポートクラス。地図; インポートjava.util.Map.Entry; インポートjava.util.Set; パブリック クラスWordCount2 { // 複数のファイル内の単語の出現をカウント:分割統治 // 1、毎回ファイルが単語が出現する回数カウント // 2を、結果は1で混合した パブリック 静的 ボイドIOExceptionがスローメイン(文字列[]引数) { // 原稿読み取りの分布 地図<文字列、整数> requestoneマップ=(" D:" + File.separator + " 停用词の.txt " ); マップ <文字列、整数> MAP1 = requestone(" D:" + File.separator + " 停用词の1.TXT " ); マップ <文字列、整数> MAP2 = requestone(" D:" + File.separator + " 停用词の2.txt " ); マップ <文字列、整数> MAP3 = requestone(" D:" + File.separator + " 停用词の3.txt " ); システム。うちの.print(マップ+ 」\ N " ); 。システムOUTの.print(MAP1 + " \ N-を" ); 。システムOUTの.print(MAP2 + " \ N- " ); 。システムOUTの.print(MAP3 + " \ N- " ); 地図 <文字列、整数>このresultMap = mergerResult(地図、MAP1、MAP2、MAP3) 。システムOUT .println(このresultMap); } プライベート 静的マップ<文字列、整数> mergerResult(マップ<文字列、整数> ...マップ) { // 各マップ・セットを介して、マージの結果、新たなマップになります マップ<文字列、整数> resultmapに=新しい新規のHashMap <文字列、整数> (); のために(地図<文字列、整数> M:地図) { // 各マップをループは、結果が新しいマップに配置されている ため(エントリ<文字列、整数> :Mキロボルト.entrySet()) // エントリを削除し、各キーに対して決定され、そうでなければ、新しいマップが存在している { 文字キー = )(kv.getKey; int型値= kv.getValue(); IF(!resultmap.containsKey (キー)) { resultmap.put(キー、値); } 他 { 整数値。このresultMap = GET(キー)+ 値; resultmap.put(キー、値); } } } 戻りこのresultMapを; } パブリック 静的地図<文字列、整数> requestone(文字列のパス)にIOExceptionスロー { // ストリームファイルを作成します読み取り // 地図コンテナを作成、読み出しワードを変数に格納され、キー:ワード、値:数 BufferedReaderののBR = 新しい新しい BufferedReaderの(新しい新規 FileReaderの(パス)); // マップ格納参照データ型 地図の<string 、整数>地図= 新しい新しい HashMapの<文字列、整数> (); 線ストリング = ヌル; // ファイルを読み込み、マップは、単語を追加します しばらく((ライン= br.readLine())!= ヌル) { // 一行は、読み出しワードに分割される = String []型串line.split(「\ N- 」); // 分割(文字列正規表現)正規表現のマッチング与えられたこの文字列を分割します。 // マップ上での各単語の配列 のために(文字列ワード:SPIT) { // 1は、マップ値に格納され、存在する場合、単語がキーである、単語があるか否かを判断する IF((map.containsKey! Wordの)) // 指定された値にマップが1つまたは複数のキーならば、それはtrueを返します。 )。 { map.put(ワード、1。 } 他{ // その単語が存在する場合、値+1の値を除去し、マップに配置された int型値=マップ。GET(ワード)+を1。; map.put(ワード、値); } } } を返す地図; } }