文档章节

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

 为超越而来
发布于 2015/06/17 19:46
字数 193
阅读 6
收藏 0
点赞 0
评论 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]]);

}


© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 2
码字总数 347
作品 0
宝山
Java IO最详解

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

ForingY ⋅ 2016/02/29 ⋅ 0

第四章 映射和元组

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

小萝卜_ ⋅ 2016/06/14 ⋅ 0

正则表达式

正则表达式是什么 正则表达式是用于描述字符排列和匹配模式的一种语法规则。 它主要用于字符串的模式分割、匹配、查找及替换操作,其中最为重要作用是匹配。 正则表达式与通配符 正则表达式用...

游骑兵vtx ⋅ 2017/10/09 ⋅ 0

手把手 | 用Python语言模型和LSTM做一个Drake饶舌歌词生成器

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

技术小能手 ⋅ 06/14 ⋅ 0

Python核心编程:第15章

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

finndai ⋅ 2016/11/28 ⋅ 0

GREP正则表达式 扩展正则表达式 重定向

GREP正则表达式 扩展正则表达式 重定向 grep 根据模式搜索文本,并将符合模式的行显示出来 grep -i 忽略大小写 grep --color 把匹配到的项改变颜色显示 grep -v 反向显示没有被匹配的行 grep...

yanghaiquanyyy ⋅ 2013/09/18 ⋅ 0

【C++】第1-2章 C++基础 知识总结

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

qq_37792173 ⋅ 2017/09/19 ⋅ 0

朴素贝叶斯案例2:拼写纠错(python实现)

拼写纠错案例思想: 当用户输入了一个不在字典中的单词,我们需要去猜测:“这个家伙到底真正想输入的单词是什么呢?”用形式化的语言来叙述,就是我们需要求得: P(我们猜测他想输入的单词 ...

pbgc396dwxjb77f2je ⋅ 2017/12/10 ⋅ 0

Python学习笔记-Day1

初识Python 第1章 初识Python 1.1什么是编程? 编程的目的就是:让机器按照人们事先为其编写好的程序自发地去工作。 1.2编程语言分为哪些种类? 1.2.1机器语言 机器语言是用二进制代码表示的...

白马探花M10 ⋅ 2017/07/07 ⋅ 0

C Primer Plus 第11章 11.13 编程练习答案

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

idreamo ⋅ 2016/09/22 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 22分钟前 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 31分钟前 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 40分钟前 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 53分钟前 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

【转】JS浮点数运算Bug的解决办法

37.5*5.5=206.08 (JS算出来是这样的一个结果,我四舍五入取两位小数) 我先怀疑是四舍五入的问题,就直接用JS算了一个结果为:206.08499999999998 怎么会这样,两个只有一位小数的数字相乘,怎...

NickSoki ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部