时间:2021-05-19
前言
对于开发的大家来说,统计文件字符个数是个常见的程序。今天利用刚学习的kotlin来实现一下。下面话不多说了,来一起看看详细的介绍吧。
方法如下:
首先找到一个要统计的文件。
val file = "F:\\MyBook\\读书备忘录.txt"然后建立一个HashMap,用来存储统计的结果。
val map = HashMap<Char, Int>()读取文件内容,转换成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结构图
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了JS实现区分中英文并统计字符个数的方法。分享给大家供大家参考,具体如下:js区分中英文统计字符个数varcountnums=(function()
本文实例讲述了java实现统计字符串中字符及子字符串个数的方法。分享给大家供大家参考,具体如下:这里用java实现统计字符串中的字符(包括数字、大写字母、小写字
本文实例讲述了java实现的统计字符算法。分享给大家供大家参考,具体如下:统计字符:概述:给定字符串,将它们进行分类,分别的去统计它们的个数及其字符分类的有:字
Kotlin单例实例详解单例的实现方法,可以通过同伴对象,或者lazy。示例:classHelloprivateconstructor(){companiono
本文实例讲述了Python统计文件中去重后uuid个数的方法。分享给大家供大家参考。具体如下:利用正则表达式按行获取日志文件中的的uuid,并且统计这些uuid