一、高阶函数是Kotlin的核心部分,下面来使用下高阶函数写一个程序
注意:我这里的File使用的是:与src同级的文件,你可以根据自己的需要,修改文件地址
代码实例
package net.println.kotlin.chapter5.example
import jdk.nashorn.internal.objects.NativeArray.map
import java.io.File
/**
* @author:wangdong
* @description:统计一个文本文件中字符串出现的个数
*/
fun main(args: Array<String>) {
//定义一个map,char表示文件中的字符,int表示出现的次数
val map = HashMap<Char,Int>()
//1.读取一个文件
//2.toCharArray把它变成字符数组
//3.filterNot不要空白字符
//4.forEach统计
//方式一:
/*File("build.gradle").readText().toCharArray().filterNot(Char::isWhitespace).forEach{
val count = map[it]
//如果这个字符在map中没有,就将字符添加到map,并计数为1
if (count == null) map[it] = 1
//如果这个字符在map中存在,就给map中它的数量加1
else map[it] = count + 1
}*/
//方式二:简化版
//用it分组
File("build.gradle").readText().toCharArray().filterNot(Char::isWhitespace)
.groupBy { it }.map {
it.key to it.value.size
}.forEach(::println)
//方式一:把map输出一下
//map.forEach(::println)
}
输出的结果:方式一和方式二,结果一样,表现现实不一样
(b, 5)
(u, 9)
(i, 43)
(l, 29)
(d, 9)
(s, 22)
(c, 8)
(r, 22)
(p, 22)
(t, 35)
({, 7)
(e, 37)
(x, 1)
(., 16)
......
好啦,结束,欢迎大家一起努力进步!