黑马程序员技术交流社区
标题:
OC中统计字符出现次数的解决方法
[打印本页]
作者:
烛风小糊涂
时间:
2016-5-8 15:58
标题:
OC中统计字符出现次数的解决方法
本帖最后由 烛风小糊涂 于 2016-5-8 16:02 编辑
统计出下面的字符串中“咳嗽”出现的次数:
NSString *s1 = @"患者:「大夫,我咳嗽得很厉害。」大夫:「你多大 年纪?」患者:「七十五岁。」大夫:「二十岁咳嗽吗?」患者:「不咳 嗽。」大夫:「四十岁时咳嗽吗?」患者:「也不咳嗽。」大夫:「那现 在不咳嗽,还要等到什么时候咳嗽?」”;
原题是基础班视频里面的练习题,原题是用NSString的,但我只能用NSMutableString来解决
还请高手教我怎么用NSString搞定~
这里献上我的思路~欢迎大家交流~!
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//定义一个变量,用于计数
int i = 0;
//使用NSMutableString,方便之后对字符串进行操作
NSMutableString *s1 = [NSMutableString stringWithFormat:@"患者:「大夫,我咳嗽得很厉害。」大夫:「你多大 年纪?」患者:「七十五岁。」大夫:「二十岁咳嗽吗?」患者:「不咳 嗽。」大夫:「四十岁时咳嗽吗?」患者:「也不咳嗽。」大夫:「那现 在不咳嗽,还要等到什么时候咳嗽?」"];
//把原句中的空格给去掉(这句话有警告,不知道怎么解决)
NSMutableString * str = [s1 stringByReplacingOccurrencesOfString:@" " withString:@""];
//定义range结构体,找到第一个“咳嗽”出现的位置
NSRange range = [str rangeOfString:@"咳嗽"];
//由于不确定“咳嗽”出现的次数,所以使用while循环,并当寻找“咳嗽”长度为0,即没有“咳嗽”出现在字符串中跳出循环
while (range.length != 0) {
//把rangeOfString找到的“咳嗽”替换成“**”
[str replaceCharactersInRange:NSMakeRange(range.location, 2) withString:@"**"];
//计数+1
i++;
//替换完毕后,继续寻找“咳嗽”
range = [str rangeOfString:@"咳嗽"];
}
//打印i,此时的i即为“咳嗽”出现的次数
NSLog(@"\"咳嗽\"出现次数为%d次",i);
}
return 0;
}
复制代码
作者:
烛风小糊涂
时间:
2016-5-8 16:01
改成**总让我感觉被和谐了什么
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2