NSMutableString常用用法

NSMutableString类继承自NSString,所以在NSString中的方法在NSMutableString都可以使用. NSMutableString和NSString的区别在于NSMutableString是动态的字符串,可以动态的添加,修改,删除等。在前面提到了就和.NET中的string和StringBuilder的区别一样。

 

  1. 添加字符串

  向字符串末尾添加字符串可以使用appendString方法和appendFormat方法。appendString方法主要用于向字符串末尾添加一个字符串;appendFormat 方法用于向字符串末尾添加多种类型的字符串,相当于.NET中的appendFormat 方法使用占位符。



NSMutableString *str=[[NSMutableString alloc] init];
    // 预先分配10个字数的存储空间
   // NSMutableString *str = [[NSMutableString alloc] initWithCapacity:10];
 [str appendString:@"NSMutableString 字符串"];
        NSLog(@"appendString=%@",str);
        
        [str appendFormat:@"  --我的名字:%@ , 年龄 %d",@"Object C",10];
        NSLog(@"appendFormat: %@",str);

  测试效果如下:


2014-02-15 12:30:21.476 ObjectC10[1233:303] appendString=NSMutableString 字符串
2014-02-15 12:30:21.478 ObjectC10[1233:303] appendFormat: NSMutableString 字符串  --我的名字:Object C , 年龄 10

 

  2. 删除字符串

  在NSMutableString中使用stringWithString方法来初始化字符串;

  使用rangeOfString获取某个字符串在原字符串的位置以及长度;

  使用deleteCharactersInRange方法删除特定位置的字符串



NSMutableString *str=[NSMutableString stringWithString:@"Object C 之NSMutableString类"];
        NSLog(@"stringWithString= %@ ",str);
        
        NSRange range= [str rangeOfString:@"Mutable"];
        NSLog(@"Location=%d",range.location);
        NSLog(@"length=%d",range.length);
        
        [str deleteCharactersInRange:range];
        NSLog(@"deleteCharactersInRange=%@",str);

  测试效果如下:



2014-02-15 12:45:34.078 ObjectC10[1272:303] stringWithString= Object C 之NSMutableString类 
2014-02-15 12:45:34.080 ObjectC10[1272:303] Location=12
2014-02-15 12:45:34.080 ObjectC10[1272:303] length=7
2014-02-15 12:45:34.080 ObjectC10[1272:303] deleteCharactersInRange=Object C 之NSString类

 

  3. 插入字符串

  在NSMutableString中在某个字符串特定位置添加一个字符串使用insertString方法;


NSMutableString *str=[NSMutableString stringWithString:@"Obejct C"];
        NSLog(@"%@",str);
        NSString *str2=@"学习";
        [str insertString:str2 atIndex:6];
        NSLog(@"insertString= %@",str);

  测试效果如下:


2014-02-15 12:53:14.517 ObjectC10[1294:303] Obejct C
2014-02-15 12:53:14.519 ObjectC10[1294:303] insertString= Obejct学习 C

 

  4.字符串拷贝

  因为NSMutableString是引用类型,也就是指针类型,当一个变量赋值给另外一个变量的时候,两者其实是指向的同一个地址。



//创建字符串
        NSMutableString *str1 = [NSMutableString stringWithString: @"字符串1"];
        NSMutableString *str2;
        
        //字符串赋值
        str2 = str1;
        
        [str2 appendString: @" 和字符串2"];
        
        NSLog (@"str1 = %@", str1);
        
        NSLog (@"str2 = %@", str2);
复制代码

  测试效果如下:


2014-02-15 12:55:33.667 ObjectC10[1308:303] str1 = 字符串1 和字符串2
2014-02-15 12:55:33.683 ObjectC10[1308:303] str2 = 字符串1 和字符串2

 

  5. 字符串类型转换

  intValue用于将字符串类型转换为int 类型

  integerValue用于将字符串类型转换为NSInteger 类型

  floatValue用于将字符串类型转换为float类型

  doubleValue用于将字符串类型转换为double类型



NSString *str1=@"123";
        int value1=[str1 intValue];
        NSLog(@"转化为int类型: str1=%d",value1);
        
        NSString *str2=@"1234";
        NSInteger value2=[str2 integerValue];
        NSLog(@"转化为NSInteger类型: str2=%i",value2);
        
        NSString *str3=@"3.1415";
        float value3=[str3 floatValue];
        NSLog(@"转换为float类型: str3=%0.4f",value3);
        
        double value4=[str3 floatValue];
        NSLog(@"转换为double类型: str3=%0.4f",value4);

  测试效果如下:


2014-02-15 13:07:00.070 ObjectC10[1378:303] 转化为int类型: str1=123
2014-02-15 13:07:00.094 ObjectC10[1378:303] 转化为NSInteger类型: str2=1234
2014-02-15 13:07:00.094 ObjectC10[1378:303] 转换为float类型: str3=3.1415
2014-02-15 13:07:00.095 ObjectC10[1378:303] 转换为double类型: str3=3.1415

  如果字符串格式有问题,则转换的时候会报异常。



  // 替换字符串
    NSRange range = [str rangeOfString:@"height"];
    //NSRange range = NSMakeRange(7, 3);
    [str replaceCharactersInRange:range withString:@"no"];


 // 释放对象
    [str release];

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值