最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用kotlin實(shí)現(xiàn)統(tǒng)計(jì)文件字符個(gè)數(shù)的方法示例

 更新時(shí)間:2017年12月03日 10:12:47   作者:厚土火焰山  
最近在學(xué)習(xí)kotlin,發(fā)現(xiàn)了一些不錯(cuò)的小技巧,所以下面這篇文章主要給大家介紹了關(guān)于利用kotlin實(shí)現(xiàn)統(tǒng)計(jì)文件字符個(gè)數(shù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。

前言

對(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ì)腳本之家的支持。

相關(guān)文章

  • 使用Android Studio檢測(cè)內(nèi)存泄露(LeakCanary)

    使用Android Studio檢測(cè)內(nèi)存泄露(LeakCanary)

    本篇文章主要介紹了用Android Studio檢測(cè)內(nèi)存泄露的問(wèn)題的解決方法,Android Studio在為我們提供了良好的編碼體驗(yàn)的同時(shí),也提供了許多對(duì)App性能分析的工具,下面我們一起來(lái)了解一下。
    2016-12-12
  • android實(shí)現(xiàn)驗(yàn)證碼按鈕

    android實(shí)現(xiàn)驗(yàn)證碼按鈕

    這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)驗(yàn)證碼按鈕功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Android仿QQ滑動(dòng)彈出菜單標(biāo)記已讀、未讀消息

    Android仿QQ滑動(dòng)彈出菜單標(biāo)記已讀、未讀消息

    這篇文章主要介紹了Android仿QQ滑動(dòng)彈出菜單標(biāo)記已讀、未讀消息的相關(guān)資料,需要的朋友可以參考下
    2016-01-01
  • Android關(guān)于FTP文件上傳和下載功能詳解

    Android關(guān)于FTP文件上傳和下載功能詳解

    這篇文章主要為大家詳細(xì)介紹了Android關(guān)于FTP文件上傳和下載功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Android實(shí)現(xiàn)橫向二級(jí)菜單

    Android實(shí)現(xiàn)橫向二級(jí)菜單

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)橫向二級(jí)菜單的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-03-03
  • Android Studio 4.0 正式發(fā)布在Ubuntu 20.04中安裝的方法

    Android Studio 4.0 正式發(fā)布在Ubuntu 20.04中安裝的方法

    這篇文章主要介紹了Android Studio 4.0 正式發(fā)布如何在Ubuntu 20.04中安裝,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Android 通過(guò)TCP協(xié)議上傳指定目錄文件的方法

    Android 通過(guò)TCP協(xié)議上傳指定目錄文件的方法

    這篇文章主要介紹了Android 通過(guò)TCP協(xié)議上傳指定目錄文件的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • android實(shí)現(xiàn)靜默安裝與卸載的方法

    android實(shí)現(xiàn)靜默安裝與卸載的方法

    這篇文章主要介紹了android實(shí)現(xiàn)靜默安裝與卸載的方法,涉及Android權(quán)限與命令行操作的相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 詳解Android 視頻滾動(dòng)列表(偷懶型)

    詳解Android 視頻滾動(dòng)列表(偷懶型)

    小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧本篇文章主要介紹了Android 視頻滾動(dòng)列表(偷懶型),
    2017-11-11
  • Android顯式Intent與隱式Intent的使用詳解

    Android顯式Intent與隱式Intent的使用詳解

    Intent的中文意思是“意圖,意向”, Intent對(duì)Android的核心和靈魂,是各組件之間的橋梁。四大組件分別為Activity 、Service、BroadcastReceiver、ContentProvider。而這四種組件是獨(dú)立的,它們之間可以互相調(diào)用,協(xié)調(diào)工作,最終組成一個(gè)真正的Android應(yīng)用
    2022-09-09

最新評(píng)論

龙门县| 依兰县| 延长县| 贵定县| 孟村| 穆棱市| 通江县| 银川市| 如东县| 汾阳市| 雅安市| 牡丹江市| 和田市| 龙山县| 浦东新区| 辽源市| 安达市| 大安市| 广安市| 泰兴市| 资中县| 井陉县| 兰溪市| 甘泉县| 连州市| 会东县| 射洪县| 平阴县| 儋州市| 大余县| 遵化市| 临夏县| 仙游县| 馆陶县| 阿勒泰市| 开封市| 靖江市| 英山县| 双辽市| 桂阳县| 霍州市|