kotlin高阶函数开发一个程序,统计文本中字符串出现的个数

本文介绍了如何利用Kotlin的高阶函数来编写一个程序,统计指定文本文件中字符串出现的次数。通过示例代码展示两种实现方式,虽然结果相同,但显示效果略有差异。鼓励读者一起学习进步。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、高阶函数是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)
......

好啦,结束,欢迎大家一起努力进步!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值