Java實現(xiàn)讀取鍵盤輸入保存到txt文件,再統(tǒng)計并輸出每個單詞出現(xiàn)次數(shù)的方法
本文實例講述了Java實現(xiàn)讀取鍵盤輸入保存到txt文件,再統(tǒng)計并輸出每個單詞出現(xiàn)次數(shù)的方法。分享給大家供大家參考,具體如下:
package javatest;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;
public class Demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("請輸入 :");
String inputStr = scanner.nextLine();
System.out.println("inputStr : " + inputStr);
File file = new File("D:/test/test01.txt");
FileOutputStream fileOut;
try {
fileOut = new FileOutputStream(file);
fileOut.write(inputStr.getBytes());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String result = "";
try {
BufferedReader br = new BufferedReader(new FileReader(file));//構(gòu)造一個BufferedReader類來讀取文件
String s = null;
while ((s = br.readLine()) != null) {//使用readLine方法,一次讀一行
result = result + s + " ";
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("---------------------------------------------");
System.out.println(result);
String[] arr = result.split(" ");
System.out.println(Arrays.toString(arr));
System.out.println(arr.length);
Map<String, Integer> map = new HashMap<>();
for (String str : arr) {
Integer num = map.get(str);
map.put(str, num == null ? 1 : num + 1);
}
Set set = map.entrySet();
Iterator it = set.iterator();
System.out.println("---------------------------------------------");
System.out.println("方法一 :");
while (it.hasNext()) {
Map.Entry<String, Integer> entry = (Map.Entry<String, Integer>) it.next();
System.out.println("單詞 " + entry.getKey() + " 出現(xiàn)次數(shù) : " + entry.getValue());
}
System.out.println("---------------------------------------------");
System.out.println("方法二 :");
Iterator it01 = map.keySet().iterator();
while (it01.hasNext()) {
Object key = it01.next();
System.out.println("單詞 " + key + " 出現(xiàn)次數(shù) : " + map.get(key));
}
}
}
輸出:
請輸入 : AAA BBB CCC DDD DDD AAA inputStr : AAA BBB CCC DDD DDD AAA --------------------------------------------- AAA BBB CCC DDD DDD AAA [AAA, BBB, CCC, DDD, DDD, AAA] 6 --------------------------------------------- 方法一 : 單詞 AAA 出現(xiàn)次數(shù) : 2 單詞 CCC 出現(xiàn)次數(shù) : 1 單詞 BBB 出現(xiàn)次數(shù) : 1 單詞 DDD 出現(xiàn)次數(shù) : 2 --------------------------------------------- 方法二 : 單詞 AAA 出現(xiàn)次數(shù) : 2 單詞 CCC 出現(xiàn)次數(shù) : 1 單詞 BBB 出現(xiàn)次數(shù) : 1 單詞 DDD 出現(xiàn)次數(shù) : 2
PS:這里再為大家推薦2款非常方便的統(tǒng)計工具供大家參考使用:
在線字?jǐn)?shù)統(tǒng)計工具:
http://tools.jb51.net/code/zishutongji
在線字符統(tǒng)計與編輯工具:
http://tools.jb51.net/code/char_tongji
更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
MyBatis-plus更新對象時將字段值更新為null的實現(xiàn)方式
mybatis-plus在執(zhí)行更新操作,當(dāng)更新字段為 空字符串 或者 null 的則不會執(zhí)行更新,如果要將指定字段更新null,可以通過以下三種方式實現(xiàn),感興趣的小伙伴跟著小編一起來看看吧2023-10-10
Spring boot 跳轉(zhuǎn)到j(luò)sp頁面的實現(xiàn)方法
本篇文章主要介紹了Spring boot 跳轉(zhuǎn)到j(luò)sp頁面的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04
java.net.SocketException: Connection reset 解決方法
最近糾結(jié)致死的一個java報錯java.net.SocketException: Connection reset 終于得到解決2013-03-03
Java實現(xiàn)單鏈表SingleLinkedList增刪改查及反轉(zhuǎn) 逆序等
單鏈表是鏈表的其中一種基本結(jié)構(gòu)。一個最簡單的結(jié)點結(jié)構(gòu)如圖所示,它是構(gòu)成單鏈表的基本結(jié)點結(jié)構(gòu)。在結(jié)點中數(shù)據(jù)域用來存儲數(shù)據(jù)元素,指針域用于指向下一個具有相同結(jié)構(gòu)的結(jié)點。 因為只有一個指針結(jié)點,稱為單鏈表2021-10-10
深入淺析springboot中static和templates區(qū)別
這篇文章主要介紹了springboot中static和templates區(qū)別,本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02

