利用kotlin實(shí)現(xiàn)統(tǒng)計(jì)文件字符個(gè)數(shù)的方法示例
前言
對(duì)于開(kāi)發(fā)的大家來(lái)說(shuō),統(tǒng)計(jì)文件字符個(gè)數(shù)是個(gè)常見(jiàn)的程序。今天利用剛學(xué)習(xí)的kotlin來(lái)實(shí)現(xiàn)一下。下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧。
方法如下:
首先找到一個(gè)要統(tǒng)計(jì)的文件。
val file = "F:\\MyBook\\讀書(shū)備忘錄.txt"
然后建立一個(gè)HashMap,用來(lái)存儲(chǔ)統(tǒng)計(jì)的結(jié)果。
val map = HashMap<Char, Int>()
讀取文件內(nèi)容,轉(zhuǎn)換成Char進(jìn)行遍歷統(tǒng)計(jì)
File(file).readText().toCharArray().filterNot(Char::isWhitespace).forEach {
val count = map[it]
if (count == null){
map[it] = 1
}else{
map[it] = count +1
}
}
readText()就是讀取文件內(nèi)容了
toCharArray()轉(zhuǎn)成Char數(shù)組
filterNot(Char::isWhitespace)忽略空格
遍歷的時(shí)候,把當(dāng)前遍歷到的map[it]賦給 count ,如果在 map 中沒(méi)找到這個(gè)字符,即 count == null,則為初次記錄,map[it] 為1,否則 map[it] 已經(jīng)記錄過(guò)了,在原有計(jì)數(shù)基礎(chǔ)上加1。
最后輸出統(tǒng)計(jì)結(jié)果
map.forEach { t, u -> println("字符\"$t\"出現(xiàn)了 $u 次")}
執(zhí)行效果如下
統(tǒng)計(jì)文件中每個(gè)字符的個(gè)數(shù) 字符"言"出現(xiàn)了 1 次 字符"需"出現(xiàn)了 1 次 字符"最"出現(xiàn)了 1 次 字符"要"出現(xiàn)了 1 次 字符"節(jié)"出現(xiàn)了 1 次 字符"。"出現(xiàn)了 1 次 字符"窄"出現(xiàn)了 1 次 字符"的"出現(xiàn)了 1 次 字符"★"出現(xiàn)了 5 次 字符"("出現(xiàn)了 1 次 字符"按"出現(xiàn)了 1 次 字符")"出現(xiàn)了 1 次 字符"《"出現(xiàn)了 1 次 字符"》"出現(xiàn)了 1 次 字符","出現(xiàn)了 2 次 字符"完"出現(xiàn)了 1 次 字符"復(fù)"出現(xiàn)了 1 次 字符"后"出現(xiàn)了 2 次 字符"題"出現(xiàn)了 1 次 字符":"出現(xiàn)了 1 次 字符"圣"出現(xiàn)了 1 次 字符"個(gè)"出現(xiàn)了 1 次 字符"本"出現(xiàn)了 1 次 字符"-"出現(xiàn)了 2 次 字符"."出現(xiàn)了 2 次 字符"0"出現(xiàn)了 4 次 字符"新"出現(xiàn)了 1 次 字符"1"出現(xiàn)了 6 次 字符"2"出現(xiàn)了 3 次 字符"3"出現(xiàn)了 2 次 字符"6"出現(xiàn)了 3 次 字符"邊"出現(xiàn)了 1 次 字符"雅"出現(xiàn)了 1 次 字符"G"出現(xiàn)了 1 次 字符"版"出現(xiàn)了 1 次 字符"重"出現(xiàn)了 1 次 字符"經(jīng)"出現(xiàn)了 1 次 字符"黑"出現(xiàn)了 1 次 字符"體"出現(xiàn)了 1 次 字符"字"出現(xiàn)了 1 次 字符"這"出現(xiàn)了 1 次 字符"距"出現(xiàn)了 1 次 字符"章"出現(xiàn)了 1 次 字符"習(xí)"出現(xiàn)了 2 次 字符"d"出現(xiàn)了 1 次 字符"f"出現(xiàn)了 1 次 字符"學(xué)"出現(xiàn)了 1 次 字符"書(shū)"出現(xiàn)了 1 次 字符"照"出現(xiàn)了 1 次 字符"全"出現(xiàn)了 1 次 字符"語(yǔ)"出現(xiàn)了 1 次 字符"o"出現(xiàn)了 1 次 字符"p"出現(xiàn)了 1 次 字符"數(shù)"出現(xiàn)了 1 次 字符"讀"出現(xiàn)了 1 次
上面的讀取還不夠簡(jiǎn)練,我們可以再簡(jiǎn)化一點(diǎn),完全不必聲明 HashMap。
val file = "F:\\MyBook\\讀書(shū)備忘錄.txt"
File(file).readText().toCharArray().filterNot(Char::isWhitespace).groupBy{it}.map {
it.key to it.value.size
}.forEach{
println("字符\"${it.first}\"出現(xiàn)了 ${it.second} 次")
}
一樣可以達(dá)到效果。這才是函數(shù)式編程。
附上:HashMap結(jié)構(gòu)圖

總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,如果有疑問(wèn)大家可以留言交流,謝謝大家對(duì)腳本之家的支持。
- 用Kotlin實(shí)現(xiàn)Android點(diǎn)擊事件的方法
- kotlin 官方學(xué)習(xí)教程之基礎(chǔ)語(yǔ)法詳解
- Android Kotlin的使用及簡(jiǎn)單實(shí)例
- Kotlin 基礎(chǔ)教程之?dāng)?shù)組容器
- Kotlin 開(kāi)發(fā)環(huán)境詳解及簡(jiǎn)單實(shí)例
- 使用Kotlin開(kāi)發(fā)Android應(yīng)用的初體驗(yàn)
- Kotlin開(kāi)發(fā)Android應(yīng)用實(shí)例詳解
- 詳解Kotlin中的變量和方法
- 使用Kotlin開(kāi)發(fā)Android應(yīng)用教程
相關(guān)文章
Android簡(jiǎn)單實(shí)現(xiàn)畫(huà)圖功能
這篇文章主要為大家詳細(xì)介紹了Android簡(jiǎn)單實(shí)現(xiàn)畫(huà)圖功能的方法,以及實(shí)現(xiàn)過(guò)程中遇到的問(wèn)題,感興趣的小伙伴們可以參考一下2016-03-03
Android 開(kāi)發(fā)隨手筆記之使用攝像頭拍照
在Android中,使用攝像頭拍照一般有兩種方法, 一種是調(diào)用系統(tǒng)自帶的Camera,另一種是自己寫(xiě)一個(gè)攝像的界面,本篇文章給大家介紹android開(kāi)發(fā)隨手筆記之使用攝像頭拍照,感興趣的朋友一起學(xué)習(xí)吧2015-11-11
詳細(xì)分析android的MessageQueue.IdleHandler
這篇文章主要介紹了android的MessageQueue.IdleHandler用法,很有參考價(jià)值,歡迎大家在下方留言區(qū)討論。2017-11-11
Android動(dòng)畫(huà)之補(bǔ)間動(dòng)畫(huà)(Tween Animation)實(shí)例詳解
這篇文章主要介紹了Android動(dòng)畫(huà)之補(bǔ)間動(dòng)畫(huà)(Tween Animation)用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android補(bǔ)間動(dòng)畫(huà)的定義,原理,注意事項(xiàng)與相關(guān)使用技巧,需要的朋友可以參考下2016-01-01
Android實(shí)現(xiàn)仿今日頭條點(diǎn)贊動(dòng)畫(huà)效果實(shí)例
我想看到今日頭條的點(diǎn)贊效果,應(yīng)該都覺(jué)得很絢麗吧,下面這篇文章主要給大家介紹了關(guān)于Android實(shí)現(xiàn)仿今日頭條點(diǎn)贊動(dòng)畫(huà)效果的相關(guān)資料,文中通過(guò)示例代價(jià)介紹的非常詳細(xì),需要的朋友可以參考下2022-02-02
Android實(shí)現(xiàn)多級(jí)樹(shù)形選擇列表
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)多級(jí)樹(shù)形選擇列表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
Android開(kāi)發(fā)簡(jiǎn)易音樂(lè)播放器
這篇文章主要為大家詳細(xì)介紹了Android開(kāi)發(fā)簡(jiǎn)易音樂(lè)播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-12-12
Android直播系統(tǒng)平臺(tái)搭建之圖片實(shí)現(xiàn)陰影效果的方法小結(jié)
這篇文章主要介紹了Android直播系統(tǒng)平臺(tái)搭建, 圖片實(shí)現(xiàn)陰影效果的若干種方法,本文給大家?guī)?lái)三種方法,每種方法通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08

