這篇文章將為大家詳細(xì)講解有關(guān)使用kotlin怎么統(tǒng)計文件中字符的個數(shù),文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計、西吉網(wǎng)絡(luò)推廣、微信小程序定制開發(fā)、西吉網(wǎng)絡(luò)營銷、西吉企業(yè)策劃、西吉品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供西吉建站搭建服務(wù),24小時服務(wù)熱線:18982081108,官方網(wǎng)址:www.cdcxhl.com
首先找到一個要統(tǒng)計的文件。
val file = "F:\\MyBook\\讀書備忘錄.txt"
然后建立一個HashMap,用來存儲統(tǒng)計的結(jié)果。
val map = HashMap()
讀取文件內(nèi)容,轉(zhuǎn)換成Char進(jìn)行遍歷統(tǒng)計
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)
忽略空格
遍歷的時候,把當(dāng)前遍歷到的map[it]
賦給 count ,如果在 map 中沒找到這個字符,即 count == null
,則為初次記錄,map[it]
為1,否則 map[it]
已經(jīng)記錄過了,在原有計數(shù)基礎(chǔ)上加1。
最后輸出統(tǒng)計結(jié)果
map.forEach { t, u -> println("字符\"$t\"出現(xiàn)了 $u 次")}
執(zhí)行效果如下
統(tǒng)計文件中每個字符的個數(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 次 字符"個"出現(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 次 字符"書"出現(xiàn)了 1 次 字符"照"出現(xiàn)了 1 次 字符"全"出現(xiàn)了 1 次 字符"語"出現(xiàn)了 1 次 字符"o"出現(xiàn)了 1 次 字符"p"出現(xiàn)了 1 次 字符"數(shù)"出現(xiàn)了 1 次 字符"讀"出現(xiàn)了 1 次
上面的讀取還不夠簡練,我們可以再簡化一點,完全不必聲明 HashMap。
val file = "F:\\MyBook\\讀書備忘錄.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} 次") }
附上:HashMap結(jié)構(gòu)圖
關(guān)于使用kotlin怎么統(tǒng)計文件中字符的個數(shù)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。