zoukankan      html  css  js  c++  java
  • Object C学习笔记9-字符串NSMutableString

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

      1. 添加字符串

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

    NSMutableString *str=[[NSMutableString alloc] init];
            [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
    测试结果

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

  • 相关阅读:
    Windows下使用Visual Studio Code搭建Go语言环境
    无缓冲和带缓冲channel的区别
    Asp.Net MVC如何返回401响应码
    从这里开始我的博客园
    java判定字符串中仅有数字和- 正则表达式匹配 *** 最爱那水货
    主席树
    Mybitis+springMVC 套路
    jeeplus ani 文档路径
    jquery easyui datagrid 多选只能获取一条数据
    python写入文件编码报错
  • 原文地址:https://www.cnblogs.com/qingyuan/p/3550445.html
Copyright © 2011-2022 走看看