本帖最后由 烛风小糊涂 于 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;
- }
复制代码
|
|