统计根目build.gradle中字符出现的次数
package com.yzdzy.kotlin.chapter5.example
import java.io.File
fun main(args: Array<String>) {
val map = HashMap<Char, Int>()
val res = File("build.gradle").readText().toCharArray().filterNot(Char::isWhitespace)
//常用方法
res.forEach {
val count = map[it]
if (count == null) map[it] = 1
else map[it] = count + 1
}
// map.forEach(::println)
// 高阶函数
res.groupBy { it }.map {
it.key to it.value.size
}.forEach(::println)
}
输出
(b, 14)
(u, 23)
(i, 119)
(l, 80)
(d, 17)
(s, 55)
(c, 30)
(r, 67)
(p, 58)
(t, 112)
({, 11)
(e, 86)
(x, 3)
(., 60)
(k, 34)
(o, 112)
(n, 123)
(_, 6)
(v, 17)
(=, 6)
(', 26)
(1, 12)
(3, 4)
(7, 2)
(2, 7)
(m, 37)
(a, 78)
(C, 6)
((, 4)
(), 4)
(}, 11)
(h, 5)
(", 40)
(g, 28)
(j, 18)
(:, 30)
(-, 16)
($, 5)
(y, 15)
(N, 2)
(z, 8)
(K, 5)
(0, 5)
(S, 3)
(A, 2)
(P, 3)
(H, 1)
(O, 4)
(T, 4)
(4, 3)
(8, 4)
(D, 1)
(+, 1)
(\, 8)
(f, 4)
(,, 2)
(q, 2)
(5, 2)
Process finished with exit code 0