利用kotlin实现统计文件字符个数的方法示例
前言
对于开发的大家来说,统计文件字符个数是个常见的程序。今天利用刚学习的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结构图
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
相关推荐
-
用Kotlin实现Android点击事件的方法
近期,Google宣布Kotlin成为了Android一级开发语言.于是就刚刚简单的研究了一下,查资料的时候发现现成的资料还是很少的,于是决定自己记录一下,方便以后查看,也供其他人一个参考. 在android中,点击事件大致分为三种写法: 1. 匿名内部类. 2. Activity实现全局OnClickListener接口. 3. 指定xml的onClick属性. 今天用Kotlin实现这三种方式实现点击事件 匿名内部类:这种方式最简单 override fun onCreate(savedIn
-
使用Kotlin开发Android应用的初体验
昨晚,最近一届的谷歌IO大会正式将Kotlin确定为了官方开发语言,作为一名Android开发鸟,怎么能不及时尝尝鲜呢? Kotlin的简要介绍 在开发之前,很多同学一定有很多疑问,Kotlin到底有啥好处,怎么和现有的项目共存呢?Java那么些特性Kotlin都有吗?嗯,让我们一一来看. Kotlin 非常适合开发 Android 应用程序,将现代语言的所有优势带入 Android 平台而不会引入任何新的限制: 兼容性:Kotlin 与 JDK 6 完全兼容,保障了 Kotlin 应用程序可以
-
Android Kotlin的使用及简单实例
Android Kotlin的使用及简单实例 写在前面的话,作为一个不熬夜的人,一觉醒来发现Kotlin成为了Android的官方语言,可谓是大喜过望.为了趁热打铁,我决定提前三天放出原定本周日Release的文章.希望能及时让大家了解一下Kotlin. 相信很多开发人员,尤其是Android开发者都会或多或少听说过Kotlin,当然如果没有听过或者不熟悉也没有关系.因为本篇文章以及博客后期的内容会涉及到很多关于Kotlin的知识分享. 在写这篇文章前的一个多月,Flipboard中国的Andr
-
使用Kotlin开发Android应用教程
使用Kotlin开发Android应用 1.Kotlin介绍 [Kotlin](https://kotlinlang.org/) Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者.Java是世界上使用最多的编程语言之一,当其他编程语言为更加便于开发者使用而不断进化时,Java并没有像预期那样及时跟进. Java缺失的很多特性在最新的修订版中逐渐覆盖到了,但Android开发者暂时还没能够使用它们.这就使得类似Kotlin这样的语言有了用武之地了:
-
Kotlin开发Android应用实例详解
Kotlin开发Android应用实例详解 相关文章:关于Kotlin语言的基础介绍: http://www.jb51.net/article/114086.htm 我们简单的知道了Kotlin这门新语言的优势,也接触了一些常见的语法及其简单的使用,相信你会对它有浓厚的兴趣,暂且理解为对它感兴趣吧,哈哈哈.那么,我们该如何在Android中应用这门新的语言呢?今天的这篇文章带你学习使用Kotlin开发Android应用,并对比我们传统语言Java,让你真真切切的感受到他的美和优雅. 配置 项目g
-
Kotlin 开发环境详解及简单实例
Hello Kotlin 在前段时间举办的Google I/O 2017上,Google宣布Kotlin成为Android官方的开发语言,这个最初发布于2011年的语言在短短的时间内就吸引了大量的开发者,而Google使得它进入了更多人的视线. Kotlin是一种开源的基于JVM的变成语言,由JetBeans公司开发(大概除了使用VS的.net开发者意外,都会或多或少听说或使用过IDEA吧),名字取自圣彼得堡附近的一个小岛(Koltin island). Kotlin是一种简单的语言,其主要目标
-
kotlin 官方学习教程之基础语法详解
kotlin 官方学习教程之基础语法详解 Google 在今天的举行了 I/O 大会,大会主要主要展示内有容 Android O(Android 8.0)系统.Google Assistant 语音助手.Google 智能音箱.人工智能.机器学习.虚拟现实等.作为一个 Android 开发者,我关心的当然是 Android O(Android 8.0)系统了,那么关于 Android O 系统的一个重要消息是全面支持 Kotlin 编程语言,使得 Kotlin 成为了 Android 开发的官方
-
Kotlin 基础教程之数组容器
Kotlin 基础教程之数组容器 Arrays Kotlin 标准库提供了arrayOf()创建数组, **ArrayOf创建特定类型数组 val array = arrayOf(1, 2, 3) val countries = arrayOf("UK", "Germany", "Italy") val numbers = intArrayOf(10, 20, 30) val array1 = Array(10, { k -> k * k
-
详解Kotlin中的变量和方法
详解Kotlin中的变量和方法 变量 Kotlin 有两个关键字定义变量:var 和 val, 变量的类型在后面. var 定义的是可变变量,变量可以被重复赋值.val 定义的是只读变量,相当于java的final变量. 变量的类型,如果可以根据赋值推测,可以省略. var name: String = "jason" name = "jame" val max = 10 常量 Java 定义常量用关键字 static final, Kotlin 没有static,
-
利用kotlin实现统计文件字符个数的方法示例
前言 对于开发的大家来说,统计文件字符个数是个常见的程序.今天利用刚学习的kotlin来实现一下.下面话不多说了,来一起看看详细的介绍吧. 方法如下: 首先找到一个要统计的文件. val file = "F:\\MyBook\\读书备忘录.txt" 然后建立一个HashMap,用来存储统计的结果. val map = HashMap<Char, Int>() 读取文件内容,转换成Char进行遍历统计 File(file).readText().toCharArray().f
-
JS实现区分中英文并统计字符个数的方法示例
本文实例讲述了JS实现区分中英文并统计字符个数的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>js区分中英文统计字符个数</titl
-
利用laravel+ajax实现文件上传功能方法示例
前言 大家都知道,早期的XMLHttpRequest不支持文件上传,一般用第三方js插件或者flash,现在可以借助XMLHttpRequest Level 2 的FormData对象实现二进制文件上传,正好最近工作中遇到了这个需求,所以本文就来给大家总结下实现的方法,话不多说了,来一起看看详细的介绍吧. 示例代码 @extends('layouts.art') @section('content') <form class="form-horizontal" id="
-
linux下wc统计文件的个数、行数、字数、字节数等信息方法
Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项]文件- 2.命令功能: 统计指定文件中的字节数.字数.行数,并将统计结果显示输出.该命令统计指定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所指定文件的总统计数. 3.命令参数: -c 统计字节数. -l 统计行数. -m 统计字符数.这个标志不能与 -c 标志一起使用. -w 统计字数.一个字被定义为由空白.跳格
-
C++统计中英文大小写字母、数字、空格及其他字符个数的方法
本文实例讲述了C++统计中英文大小写字母.数字.空格及其他字符个数的方法.分享给大家供大家参考,具体如下: /* * 作 者: 刘同宾 * 完成日期:2012 年 11 月 28 日 * 版 本 号:v1.0 * 输入描述: * 问题描述: 有一篇文章,共有三行文字,每行有80个字符.要求分别统计出其中英文大写字母.小写字母.数字.空格以及其他字符的个数. * 程序输出: * 问题分析:略 * 算法设计:略 */ #include<iostream> using namespace std;
-
利用pandas进行大文件计数处理的方法
Pandas读取大文件 要处理的是由探测器读出的脉冲信号,一组数据为两列,一列为时间,一列为脉冲能量,数据量在千万级,为了有一个直接的认识,先使用Pandas读取一些 import pandas as pd data = pd.read_table('filename.txt', iterator=True) chunk = data.get_chunk(5) 而输出是这样的: Out[4]: 332.977889999979 -0.0164794921875 0 332.97790 -0.02
-
Python3读取UTF-8文件及统计文件行数的方法
本文实例讲述了Python3读取UTF-8文件及统计文件行数的方法.分享给大家供大家参考.具体实现方法如下: ''''' Created on Dec 21, 2012 Python 读取UTF-8文件 统计文件的行数目 @author: liury_lab ''' # -*- coding: utf-8 -*- import codecs # 对较小的文件,最简单的方法是将文件读入一个行列表中, # 然后计算列表的长度即可 count = len(codecs.open('d:/FreakOu
-
jQuery实现统计输入文字个数的方法
本文实例讲述了jQuery实现统计输入文字个数的方法.分享给大家供大家参考.具体如下: jQuery统计输入文字个数可以使用在统计回复字数,标题字数长度提示,增加友好度提高用户体验.代码如下: 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; char
-
C语言简单实现计算字符个数的方法
本文实例讲述了C语言简单实现计算字符个数的方法.分享给大家供大家参考.具体如下: char_counting.c如下: #include<stdio.h> int main() { long nc; nc = 0; while(getchar() != '0') { ++nc; } printf("%ld\n", nc); } 编译和使用下: 复制代码 代码如下: gcc char_counting.c -o char_counting.o 一种通常的调用方式: 复制代码
-
在python中利用GDAL对tif文件进行读写的方法
利用GDAL库对tif影像进行读取 示例代码默认波段为[B.G.R.NIR的顺序,且为四个波段] import gdal def readTif(fileName): dataset = gdal.Open(fileName) if dataset == None: print(fileName+"文件无法打开") return im_width = dataset.RasterXSize #栅格矩阵的列数 im_height = dataset.RasterYSize #栅格矩阵的行
随机推荐
- js实现动态显示时间效果
- 详解PHP用substr函数截取字符串中的某部分
- Angularjs中的页面访问权限怎么设置
- Mac入门使用VMware Fusion虚拟机
- 提供Vista全驱动下载
- 新安装的用户,请检查有没有修改默认的数据库密码。
- Java 线程的生命周期详细介绍及实例代码
- 浅析java 循序与二元搜索算法
- 使用grunt合并压缩js和css文件的方法
- javascript中onmouse事件在div中失效问题的解决方法
- ASP.NET设计网络硬盘之删除文件夹实现代码
- php处理带有中文URL的方法
- linux c程序中获取shell脚本输出的实现方法
- 简单的jQuery banner图片轮播实例代码
- js调试系列 控制台命令行API使用方法
- spring整合redis缓存并以注解(@Cacheable、@CachePut、@CacheEvict)形式使用
- CentOS设置静态IP的方法总结
- Java中Hashtable类与HashMap类的区别详解
- ASP.NET技巧:做个DataList可分页的数据源
- 路由器+WIC-1ADSL的配置静态和动态