文档章节

oc语言,读取文件,输入一个数字,比如4,输出该文章中出现4次的所有单词

 为超越而来
发布于 2015/06/17 19:46
字数 193
阅读 7
收藏 0

- (id)initWithFile:(NSString *)path

{

    self = [super init];

    if (self) {

        _wordList = [NSMutableDictionary dictionary];

        [self parseWordFile:path];

    }

    return self;

}


- (void)parseWordFile:(NSString *)path

{

    //读取单词文件

    NSString *fileContent = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];

    if (!fileContent) {

        return;

    }

    //分割字符串

    NSArray *words = [fileContent componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@",. \n"]];

    NSMutableArray *mulWords = [NSMutableArray array];

    for (NSString *item in words) {

        if (![item isEqualToString:@""]) {

            [mulWords addObject:[item lowercaseString]];

        }

    }

    //统计单词出现的次数, 并添加到字典中

    while ([mulWords count]) {

        NSString *key = [mulWords objectAtIndex:0];

        NSNumber *value = [NSNumber numberWithInteger:[self firstWordCountInArray:key withArray:mulWords]];

        [_wordList setObject:value forKey:key];

        [mulWords removeObject:key];

    }

}


- (NSInteger)firstWordCountInArray:(NSString *)word withArray:(NSMutableArray *)mulArray

{

    NSInteger cnt =0;

    for (NSString *item in mulArray) {

        if ([item isEqualToString:word]) {

            cnt++;

        }

    }

    return cnt;

}


+ (void)userInterface

{

    WordManger *manger = [[WordManger alloc] initWithFile:@"/Users/];

    NSInteger cnt;

    scanf("%li",&cnt);

    NSLog(@"keys = %@", [manger->_wordList allKeysForObject:[NSNumber numberWithInteger:cnt]]);

}


© 著作权归作者所有

共有 人打赏支持
上一篇: oc中解析xml文件
下一篇: oc中解析xml文件
粉丝 0
博文 2
码字总数 347
作品 0
宝山
私信 提问
Java IO最详解

初学java,一直搞不懂java里面的io关系,在网上找了很多大多都是给个结构图草草描述也看的不是很懂。而且没有结合到java7 的最新技术,所以自己来整理一下,有错的话请指正,也希望大家提出宝...

ForingY
2016/02/29
31
0
【C++】第1-2章 C++基础 知识总结

《C++ Primer Plus》第1-2章知识点总结 首先声明,本文总结内容均是在一定的C语言基础上进行的总结,因为第1-2章内容不多,所有知识点可能有些零散,不过都是刚学的容易忽略的知识点 C++融合...

qq_37792173
2017/09/19
0
0
C Primer Plus 第11章 11.13 编程练习答案

1、设计并测试一个函数,可以从输入读取n个字符(包括空格、制表符和换行符),把结果存储在一个数组中,这个数组的地址通过参数来传递。 2、修改并测试练习1中的函数,使得可以在n个字符后,...

idreamo
2016/09/22
388
0
第四章 映射和元组

1、设置映射,其中包含你想要的一些装备,以及他们的价格。然后构建另外一个映射,采用同一组键,但在价格上打9折 2、编写一段程序,从文件中读取单词。用一个可变映射来清点每一个单词出现的...

小萝卜_
2016/06/14
7
0
JavaScript 编程精解 中文第三版 零、前言

零、前言 原文:Introduction 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 部分参考了《JavaScript 编程精解(第 2 版)》 We think we are creating the system for our own purp...

ApacheCN_飞龙
2018/06/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spark in action on Kubernetes - Playground搭建与架构浅析

前言 Spark是非常流行的大数据处理引擎,数据科学家们使用Spark以及相关生态的大数据套件完成了大量又丰富场景的数据分析与挖掘。Spark目前已经逐渐成为了业界在数据处理领域的行业标准。但是...

阿里云官方博客
21分钟前
3
0
小白大数据学习路线

学习大数据首先了解大数据技术得板块划分: 数据计算(离线计算):Hadoop、spark 数据计算(实时计算):storm、spartstreaming、flink 其他框架:zookeeper 数据采集:flume、Kafka 数据存...

董黎明
34分钟前
0
0
mariadb 内存占用优化

本文由云+社区发表 作者:工程师小熊 摘要:我们在使用mariadb的时候发现有时候不能启动起来,在使用过程中mariadb占用的内存很大,在这里学习下mariadb与内存相关的配置项,对mariadb进行调...

腾讯云加社区
今天
4
0
spring security 自定义登录认证

spring security 自定义认证登录 1.概要 1.1.简介 spring security是一种基于 Spring AOP 和 Servlet 过滤器的安全框架,以此来管理权限认证等。 1.2.spring security 自定义认证流程 1)认证...

EasyProgramming
今天
2
0
Win下Jenkins-2.138源码编译及填坑笔记

源码编译篇 1、 安装JDK1.8-181,操作系统添加JDK环境变量。Java -version验证一下。 注:Jenkins2.138版本,JDK必须jkd1.8.0-101以上,不支持Java9,Maven必须3.5.3以上。 2、 解压Maven3....

编程SHA
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部