黑马程序员技术交流社区

标题: 关于NSString和NSMutableString删除子串的方式。 [打印本页]

作者: 悟中生有    时间: 2014-4-13 19:19
标题: 关于NSString和NSMutableString删除子串的方式。
本帖最后由 悟中生有 于 2014-4-14 11:15 编辑

已知:NSMutableString删除子串的方式是:
  1. //创建可变字符串
  2. NSMutableString *s1 = [NSMutableString stringWithFormat:@"i like china"];
  3. //获取like在s1中的范围,并且删除like
  4. NSRange ragne =[s1 rangeOfString:@"like"];
  5.     [s1 deleteCharactersInRange:ragne];
复制代码
请问如果要删除NSString字符串中的字串要用什么方式?谢谢了!



作者: FlyTrem    时间: 2014-4-13 19:23
将不可变变为可变再删呗!
作者: 悟中生有    时间: 2014-4-13 19:29
FlyTrem 发表于 2014-4-13 19:23
将不可变变为可变再删呗!

你的意思是不是把NSString拼接到NSMutableString里面,再按照NSMutableString的删除方式删除吗?
作者: 董月峰    时间: 2014-4-14 08:58
    // 创建不可变字符串@"itheimane"
    NSString *s1 = @"itheimane";
   
    // 获取其中ne的范围
    NSRange range = [s1 rangeOfString: @"ne"];
   
    // 创建新的不可变字符串,用删掉范围rang的s1 赋值给新的字符串s2
    NSString *s2 = [s1 stringByReplacingCharactersInRange:range withString: @""];
   
    NSLog(@"%@", s2);
作者: FlyTrem    时间: 2014-4-14 09:12
悟中生有 发表于 2014-4-13 19:29
你的意思是不是把NSString拼接到NSMutableString里面,再按照NSMutableString的删除方式删除吗? ...

不是拼接式,是直接将不可变转换为可变字符串!然后查找删除!
作者: 于清扬    时间: 2014-4-14 09:48
  1. // NSString是不可字符串,初始化完毕后就不能改变(删除/增加等操作)
  2.     NSString *str1 = @"mynameis";
  3.    
  4.     // 实现楼主的删除 可以创建一个新的字符串
  5.     // 也可以先创建个可变的
  6.    
  7.     NSMutableString * str2 = [NSMutableString stringWithString:str1];
  8.    
  9.     NSRange ragne =[str2 rangeOfString:@"name"];
  10.     [str2 deleteCharactersInRange:ragne];
  11.    
复制代码

作者: 悟中生有    时间: 2014-4-14 11:12
董月峰 发表于 2014-4-14 08:58
// 创建不可变字符串@"itheimane"
    NSString *s1 = @"itheimane";
   

谢啦!明白了,只要能实现目的,什么方法都可以是吧
作者: 悟中生有    时间: 2014-4-14 11:14
于清扬 发表于 2014-4-14 09:48

看懂了,多谢指教!
作者: 悟中生有    时间: 2014-4-14 11:15
FlyTrem 发表于 2014-4-14 09:12
不是拼接式,是直接将不可变转换为可变字符串!然后查找删除!

嗯!知道了,多谢指教!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2