文档章节

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
第四章 映射和元组

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

小萝卜_
2016/06/14
7
0
【C++】第1-2章 C++基础 知识总结

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

qq_37792173
2017/09/19
0
0
手把手 | 用Python语言模型和LSTM做一个Drake饶舌歌词生成器

未来AI的主要应用是在建立能够学习数据然后生成原创内容的网络。这个想法已经充分应用于在自然语言处理(NLP)领域,这也是AI社区能够搭建出所谓语言模型的原因:语言模型的前提是学习句子在...

技术小能手
06/14
0
0
Python核心编程:第15章

15.1 正则表达式为高级文本模式匹配,以及搜索-替代等功能提供了基础。正则表达式(RE)是一些由字符和特殊符号组成的字符串,它们描述了这些字符和字符的某种重复方式,因此能按某种模式匹配...

finndai
2016/11/28
10
0

没有更多内容

加载失败,请刷新页面

加载更多

apache顶级项目(二) - B~C

apache顶级项目(二) - B~C https://www.apache.org/ Bahir Apache Bahir provides extensions to multiple distributed analytic platforms, extending their reach with a diversity of s......

晨猫
今天
1
0
day152-2018-11-19-英语流利阅读

“超级食物”竟然是营销噱头? Daniel 2018-11-19 1.今日导读 近几年来,超级食物 superfoods 开始逐渐走红。不难发现,越来越多的轻食餐厅也在不断推出以超级食物为主打食材的健康料理,像是...

飞鱼说编程
今天
3
0
SpringBoot源码:启动过程分析(二)

接着上篇继续分析 SpringBoot 的启动过程。 SpringBoot的版本为:2.1.0 release,最新版本。 一.时序图 一样的,我们先把时序图贴上来,方便理解: 二.源码分析 回顾一下,前面我们分析到了下...

Jacktanger
昨天
3
0
Apache防盗链配置,Directory访问控制,FilesMatch进行访问控制

防盗链配置 通过限制referer来实现防盗链的功能 配置前,使用curl -e 指定referer [root@test-a test-webroot]# curl -e "http://www.test.com/1.html" -x127.0.0.1:80 "www.test.com/1.jpg......

野雪球
昨天
5
0
RxJava threading

因为Rx针对异步系统设计,并且Rx也自然支持多线程,所以新的Rx开发人员有时会假设Rx默认是多线程的。在其他任何事情之前,重要的是澄清Rx默认是单线程的。 除非另有说明,否则每次调用onNex...

woshixin
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部