Code Bye

OC可变字符串中删除部分字符问题

// 可变字符串的拼接和删除
        NSMutableString *str = [[NSMutableString alloc] initWithString:@"天王盖地虎"];
        [str appendString:@",宝塔镇河妖"]; // 无返回值的拼接字符串
        NSString *str2 = [str stringByAppendingString:@"hahaha"]; // 有返回值拼接字符串
        
        // 删除指定的字符
        NSRange range = [str rangeOfString:@"盖"];// 先确定要删除的字符的范围(位置,长度)
        NSRange range2 = [str rangeOfString:@"镇"];
        
        NSLog(@"%ld-%ld",range2.location,range2.length);
        
        [str deleteCharactersInRange:range]; // 调用删除字符方法
        [str deleteCharactersInRange:range2];
        
        NSLog(@"%ld-%ld",range.location,range.length);
        NSLog(@"%ld-%ld",range2.location,range2.length);
        NSLog(@"%@",str);
        NSLog(@"%@",str2);
解决方案

20

你的问题是什么,本人试了一下运行正常啊
2015-05-28 22:36:00.864 RhinoStory[1923:23836] 8-1
2015-05-28 22:36:00.864 RhinoStory[1923:23836] 2-1
2015-05-28 22:36:00.864 RhinoStory[1923:23836] 8-1
2015-05-28 22:36:00.864 RhinoStory[1923:23836] 天王地虎,宝塔镇妖
2015-05-28 22:36:00.865 RhinoStory[1923:23836] 天王盖地虎,宝塔镇河妖hahaha
你是想问为什么”镇”没被删掉而是”河”被删了吗?
那是原因是你把”盖”删除了之后range变了啊

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明OC可变字符串中删除部分字符问题