Java實(shí)現(xiàn)讀取鍵盤輸入保存到txt文件,再統(tǒng)計(jì)并輸出每個(gè)單詞出現(xiàn)次數(shù)的方法
本文實(shí)例講述了Java實(shí)現(xiàn)讀取鍵盤輸入保存到txt文件,再統(tǒng)計(jì)并輸出每個(gè)單詞出現(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("請(qǐng)輸入 :");
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)造一個(gè)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));
}
}
}
輸出:
請(qǐng)輸入 : 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ì)工具供大家參考使用:
在線字?jǐn)?shù)統(tǒng)計(jì)工具:
http://tools.jb51.net/code/zishutongji
在線字符統(tǒng)計(jì)與編輯工具:
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緩存操作技巧匯總》
希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。
相關(guān)文章
Spring的BeanFactoryPostProcessor接口示例代碼詳解
這篇文章主要介紹了Spring的BeanFactoryPostProcessor接口,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-02-02
基于Java實(shí)現(xiàn)一個(gè)簡單的圖片加載器
這篇文章主要為大家詳細(xì)介紹了如何使用Java?2D?API(Java的繪圖和圖像API)來實(shí)現(xiàn)圖片加載和顯示,文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下2023-11-11
SpringBoot+Logback實(shí)現(xiàn)一個(gè)簡單的鏈路追蹤功能
Spring Boot默認(rèn)使用LogBack日志系統(tǒng),并且已經(jīng)引入了相關(guān)的jar包,所以我們無需任何配置便可以使用LogBack打印日志。這篇文章主要介紹了SpringBoot+Logback實(shí)現(xiàn)一個(gè)簡單的鏈路追蹤功能,需要的朋友可以參考下2019-10-10
SpringBoot整合JWT框架,解決Token跨域驗(yàn)證問題
Json web token (JWT), 是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標(biāo)準(zhǔn)((RFC 7519).定義了一種簡潔的,自包含的方法用于通信雙方之間以JSON對(duì)象的形式安全的傳遞信息。2021-06-06
Spring MVC的優(yōu)點(diǎn)與核心接口_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Spring MVC的優(yōu)點(diǎn)與核心接口,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-08-08

