Java統(tǒng)計(jì)英文句子中出現(xiàn)次數(shù)最多的單詞并計(jì)算出現(xiàn)次數(shù)的方法
本文實(shí)例講述了Java統(tǒng)計(jì)英文句子中出現(xiàn)次數(shù)最多的單詞并計(jì)算出現(xiàn)次數(shù)的方法。分享給大家供大家參考,具體如下:
import java.util.*;
/**
* 統(tǒng)計(jì)出現(xiàn)次數(shù)最多的單詞和它出現(xiàn)的次數(shù)
*
* @author ZHR
*/
public class CountWord {
public static String[] strTostrArray(String str) {
/*
* 將非字母字符全部替換為空格字符" " 得到一個(gè)全小寫的純字母字符串包含有空格字符
*/
str = str.toLowerCase();// 將字符串中的英文部分的字符全部變?yōu)樾?
String regex = "[\\W]+";// 非字母的正則表達(dá)式 --\W:表示任意一個(gè)非單詞字符
str = str.replaceAll(regex, " ");
String[] strs = str.split(" "); // 以空格作為分隔符獲得字符串?dāng)?shù)組
return strs;
}
public static void countword(String[] strs) {
/*
* 建立字符串(String)出現(xiàn)次數(shù)(Integer)的映射
*/
HashMap<String, Integer> strhash = new HashMap<String, Integer>();
Integer in = null;// 用于存放put操作的返回值
for (String s : strs) {// 遍歷數(shù)組 strs
in = strhash.put(s, 1);
if (in != null) {// 判斷如果返回的不是null,則+1再放進(jìn)去就是出現(xiàn)的次數(shù)
strhash.put(s, in + 1);
}
}
Set<java.util.Map.Entry<String, Integer>> entrySet = strhash.entrySet();
String maxStr = null;// 用于存放出現(xiàn)最多的單詞
int maxValue = 0;// 用于存放出現(xiàn)最多的次數(shù)
for (java.util.Map.Entry<String, Integer> e : entrySet) {
String key = e.getKey();
Integer value = e.getValue();
if (value > maxValue) {
maxValue = value;// 這里有自動(dòng)拆裝箱
maxStr = key;
}
}
System.out.println("出現(xiàn)最多的單詞是:" + maxStr + "出現(xiàn)了" + maxValue + "次");
}
@SuppressWarnings("resource")
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("請輸入一行英文句子:");
String str = scan.nextLine();
System.out.println("輸入的英文句子為:" + str);
String[] strs = strTostrArray(str);
countword(strs);
}
}
運(yùn)行結(jié)果:

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緩存操作技巧匯總》
希望本文所述對大家java程序設(shè)計(jì)有所幫助。
- JAVA統(tǒng)計(jì)字符串中某個(gè)字符出現(xiàn)次數(shù)的方法實(shí)現(xiàn)
- Java案例使用集合方法實(shí)現(xiàn)統(tǒng)計(jì)任意字符串中字符出現(xiàn)的次數(shù)
- Java實(shí)現(xiàn)統(tǒng)計(jì)字符串出現(xiàn)的次數(shù)
- Java統(tǒng)計(jì)一個(gè)字符串在另外一個(gè)字符串出現(xiàn)次數(shù)的方法
- Java統(tǒng)計(jì)字符串中字符出現(xiàn)次數(shù)的方法示例
- Java編程實(shí)現(xiàn)統(tǒng)計(jì)數(shù)組中各元素出現(xiàn)次數(shù)的方法
- java統(tǒng)計(jì)字符串中重復(fù)字符出現(xiàn)次數(shù)的方法
- Java中計(jì)算集合中元素的出現(xiàn)次數(shù)統(tǒng)計(jì)
相關(guān)文章
SpringBoot接口如何對參數(shù)進(jìn)行校驗(yàn)
這篇文章主要介紹了SpringBoot接口如何對參數(shù)進(jìn)行校驗(yàn),在以SpringBoot開發(fā)Restful接口時(shí),?對于接口的查詢參數(shù)后臺(tái)也是要進(jìn)行校驗(yàn)的,同時(shí)還需要給出校驗(yàn)的返回信息放到上文我們統(tǒng)一封裝的結(jié)構(gòu)中2022-07-07
Java Http請求傳json數(shù)據(jù)亂碼問題的解決
這篇文章主要介紹了Java Http請求傳json數(shù)據(jù)亂碼問題的解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
基于mybatis中test條件中單引號(hào)雙引號(hào)的問題
這篇文章主要介紹了基于mybatis中test條件中單引號(hào)雙引號(hào)的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01
Maven插件構(gòu)建Docker鏡像的實(shí)現(xiàn)步驟
這篇文章主要介紹了Maven插件構(gòu)建Docker鏡像的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Java中String.split()的最詳細(xì)源碼解讀及注意事項(xiàng)
以前經(jīng)常使用String.split()方法,但是從來沒有注意,下面這篇文章主要給大家介紹了關(guān)于Java中String.split()最詳細(xì)源碼解讀及注意事項(xiàng)的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07
圖文講解Java中實(shí)現(xiàn)quickSort快速排序算法的方法
這篇文章主要介紹了Java中實(shí)現(xiàn)quickSort快速排序算法的方法,文章最后還介紹了一種單向掃描的實(shí)現(xiàn)方法,需要的朋友可以參考下2016-05-05
Java利用Redis實(shí)現(xiàn)高并發(fā)計(jì)數(shù)器的示例代碼
這篇文章主要介紹了Java利用Redis實(shí)現(xiàn)高并發(fā)計(jì)數(shù)器的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02

