重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这篇文章将为大家详细讲解有关使用kotlin怎么统计文件中字符的个数,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
创新互联长期为1000多家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为通城企业提供专业的成都做网站、网站制作,通城网站改版等技术服务。拥有十年丰富建站经验和众多成功案例,为您定制开发。首先找到一个要统计的文件。
val file = "F:\\MyBook\\读书备忘录.txt"
然后建立一个HashMap,用来存储统计的结果。
val map = HashMap()
读取文件内容,转换成Char进行遍历统计
File(file).readText().toCharArray().filterNot(Char::isWhitespace).forEach { val count = map[it] if (count == null){ map[it] = 1 }else{ map[it] = count +1 } }
readText()
就是读取文件内容了
toCharArray()
转成Char数组
filterNot(Char::isWhitespace)
忽略空格
遍历的时候,把当前遍历到的map[it]
赋给 count ,如果在 map 中没找到这个字符,即 count == null
,则为初次记录,map[it]
为1,否则 map[it]
已经记录过了,在原有计数基础上加1。
最后输出统计结果
map.forEach { t, u -> println("字符\"$t\"出现了 $u 次")}
执行效果如下
统计文件中每个字符的个数 字符"言"出现了 1 次 字符"需"出现了 1 次 字符"最"出现了 1 次 字符"要"出现了 1 次 字符"节"出现了 1 次 字符"。"出现了 1 次 字符"窄"出现了 1 次 字符"的"出现了 1 次 字符"★"出现了 5 次 字符"("出现了 1 次 字符"按"出现了 1 次 字符")"出现了 1 次 字符"《"出现了 1 次 字符"》"出现了 1 次 字符","出现了 2 次 字符"完"出现了 1 次 字符"复"出现了 1 次 字符"后"出现了 2 次 字符"题"出现了 1 次 字符":"出现了 1 次 字符"圣"出现了 1 次 字符"个"出现了 1 次 字符"本"出现了 1 次 字符"-"出现了 2 次 字符"."出现了 2 次 字符"0"出现了 4 次 字符"新"出现了 1 次 字符"1"出现了 6 次 字符"2"出现了 3 次 字符"3"出现了 2 次 字符"6"出现了 3 次 字符"边"出现了 1 次 字符"雅"出现了 1 次 字符"G"出现了 1 次 字符"版"出现了 1 次 字符"重"出现了 1 次 字符"经"出现了 1 次 字符"黑"出现了 1 次 字符"体"出现了 1 次 字符"字"出现了 1 次 字符"这"出现了 1 次 字符"距"出现了 1 次 字符"章"出现了 1 次 字符"习"出现了 2 次 字符"d"出现了 1 次 字符"f"出现了 1 次 字符"学"出现了 1 次 字符"书"出现了 1 次 字符"照"出现了 1 次 字符"全"出现了 1 次 字符"语"出现了 1 次 字符"o"出现了 1 次 字符"p"出现了 1 次 字符"数"出现了 1 次 字符"读"出现了 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}\"出现了 ${it.second} 次") }
附上:HashMap结构图
关于使用kotlin怎么统计文件中字符的个数就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。