Java實(shí)現(xiàn)讀取鍵盤輸入保存到txt文件,再統(tǒng)計并輸出每個單詞出現(xiàn)次數(shù)的方法
本文實(shí)例講述了Java實(shí)現(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é)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計有所幫助。
相關(guān)文章
Java中null的意義及其使用時的注意事項(xiàng)說明
這篇文章主要介紹了Java中null的意義及其使用時的注意事項(xiàng)說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09MyBatis-plus更新對象時將字段值更新為null的實(shí)現(xiàn)方式
mybatis-plus在執(zhí)行更新操作,當(dāng)更新字段為 空字符串 或者 null 的則不會執(zhí)行更新,如果要將指定字段更新null,可以通過以下三種方式實(shí)現(xiàn),感興趣的小伙伴跟著小編一起來看看吧2023-10-10Spring boot 跳轉(zhuǎn)到j(luò)sp頁面的實(shí)現(xiàn)方法
本篇文章主要介紹了Spring boot 跳轉(zhuǎn)到j(luò)sp頁面的實(shí)現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04java.net.SocketException: Connection reset 解決方法
最近糾結(jié)致死的一個java報錯java.net.SocketException: Connection reset 終于得到解決2013-03-03Java實(shí)現(xiàn)單鏈表SingleLinkedList增刪改查及反轉(zhuǎn) 逆序等
單鏈表是鏈表的其中一種基本結(jié)構(gòu)。一個最簡單的結(jié)點(diǎn)結(jié)構(gòu)如圖所示,它是構(gòu)成單鏈表的基本結(jié)點(diǎn)結(jié)構(gòu)。在結(jié)點(diǎn)中數(shù)據(jù)域用來存儲數(shù)據(jù)元素,指針域用于指向下一個具有相同結(jié)構(gòu)的結(jié)點(diǎn)。 因?yàn)橹挥幸粋€指針結(jié)點(diǎn),稱為單鏈表2021-10-10深入淺析springboot中static和templates區(qū)別
這篇文章主要介紹了springboot中static和templates區(qū)別,本文通過圖文實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2020-02-02