ios不可改变NSString类和可改变NSMutableString类的使用 


               

我们提供的服务有:成都网站设计、网站建设、外贸网站建设、微信公众号开发、网站优化、网站认证、罗庄ssl等。为上千企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的罗庄网站制作公司

   

ios不可改变NSString类和可改变NSMutableString类的使用

 

一, NSString的常用用法

 

1,创建对象两种方法

 

1)   ”-”号方法  alloc + 初始化

关键词 initWithString 与 initWithFormat

例如 NSString *str = [[NSString alloc] initWithString:@"iPhone 4"];

initWithFormat 方法 比 initWithString 方法 更强大,可以设置格式,如上述的字符串” iPhone 4” 可以写成

NSString *str = [[NSStringalloc] initWithFormat:@"iPhone%d",4];

这里的4是自定义的可以根据自己的需要随时改变,

 

2)   这是构造便利器关键词stringWithString 与 tringWithFormat

      例如     NSString *str = [NSString stringWithString:@"iPhone5"];

stringWithFormat 方法比stringWithString功能强大,可以设置输出格式

      例如     NSString *str = [NSString stringWithFormat:@"iPhone%d",5];

注释 : 这里的5是自定义的可以根据自己的需要随时改变

其实凡是方法名最后是以Format结尾的都是可以设置格式的,下面不在赘述

2,求字符串长度   关键词length

 

    NSString *str = [NSString stringWithString:@"Helloworld];

    NSUInteger length = [strlength];

    NSLog(@"length = %lu",length);

    这里长度应设置为无符号长整型

3,根据给定的下标获取字符串中的字符 关键词 characterAtIndex

 

     NSString *str = [NSStringstringWithString:@"Hello world];

      unichar chara = [strcharacterAtIndex:5];

      NSLog(@"%c",chara);

 

4,判断是否以指定的字符串开头或者以指定的字符串结尾

    1),判断一个字符串是否以某个字符串开头 关键词hasPrefix,返回值为BOOL类 型

          例如  判断一个字符串是否以http开头是否以.com结束

    NSString *str = [[NSString alloc]initWithFormat:@"http://www.baidu.com"];

    判断是否以http开头

    BOOL  isPrefix = [strhasPrefix:@"http"];

      NSLog(@"%d",isPrefix);

2),判断一个字符串是否以某个字符串结尾 关键词hasSuffix,返回值为BOOL类

  例如  判断一个字符串是否以.com结束

 

    BOOL isSuffix = [strhasSuffix:@".com"];

   NSLog(@"%d",isSuffix);

 

5,查找指定字符串的范围 关键词  rangeOfString

NSRange是结构体类型的类型重定义,range是结构体类型

NSRange range = [str4rangeOfString:@"ttp"];

       if (range.length ==0) {

           NSLog(@"没有找到对应的字符串");

        }else {

           

           NSLog(@"location = %lu length = %lu",range.location,range.length);

        }

 

在这里我们可以看到输出下标要用到结构体中结构体变量访问结构体成员的比较麻烦,OC提供了一个方法NSStringFromRange 将NSRange类型的结构体变量转变为字符串对象

           NSLog(@"%@",NSStringFromRange(range));

 

6,获取子字符串

NSString *str = [[NSString alloc]initWithFormat:@"http://www.baidu.com"];

 

        1)获取给定下标之后的子字串,包含指定下标对应的字符 关键词substringFromIndex

 

       NSString *str1 = [strsubstringFromIndex:5];

       NSLog(@"str1 = %@",str1);

       

        2)获取从开始位置到给定下标之前的子字符串,但是不包含指定下标对应的字符  关键词 substringToIndex 

        str1 = [strsubstringToIndex:7];

       NSLog(@"str1 = %@",str1);

        3)获取从给定下标范围内的子字符串,即按照所给出的位置,长度,任意地从字符串中截取子串  关键词substringWithRange:

如:获取www

        str1 = [strsubstringWithRange:NSMakeRange(0,3)];

       NSLog(@"str1 = %@",str1);

这里NSMakeRange(0,3)快速给定结构体变量ange里的下标成员和长    度成员

 

7,拼接字符串 关键词  stringByAppendingString: 与 stringByAppendingFormat:

      例如

     NSString *str = [NSStringstringWithFormat:@"Lanou"];

       

        1)lanou后拼接henan stringByAppendingString:

       NSString *newStr = [strstringByAppendingString:@"henan"];

       NSLog(@"newStr = %@",newStr);

       

        2) lanou后拼接henan9ban 

       stringByAppendingFormat:比stringByAppendingString:功能强大,因为前者可以使用格式串,

        newStr = [strstringByAppendingFormat:@"9ban%@",newStr];

       NSLog(@"newStr = %@",newStr);

       

8,替换字符串 关键词 stringByReplacingOccurrencesOfString:

       NSString *str = [NSStringstringWithFormat:@"lanou is a big big big company"];

        1),将big替换成small 

stringByReplacingOccurrencesOfString:@"big"withString:@"small"];

       NSLog(@"newStr = %@",newStr);

在这里会将所有的big都换成small

 

        2),只将第一个big替换成small 关键词stringByReplacingCharactersInRange:

        newStr = [strstringByReplacingCharactersInRange:NSMakeRange(11,3)withString:@"small"];

      NSLog(@"newStr = %@",newStr);

       

  9,字符串比较 关键词compare

       NSComparisonResult result =[@"111"compare:@"111"];

       NSLog(@"result = %ld",result);

这里结果只有三种1,0,-1,第一:按照降序,即前者大于后者,结果为1,第二:两者相等,结果为0,第三:按照升序,前者小于后者,结果为-1,

10,字符串和数值类型转换 

    1),将字符串"123"转换为整数123 intValue

 

       intValue方法从第一个字符开始读取数字,如果在遇到了除空格之外的字符时,将前面的空格忽略掉,继续往下找,读取数字,直到遇到非数字时结束

       int value =  [@"   a1 2a3abc"intValue];

       NSLog(@"%d",value);

       float value1 = [@"   12a3abc"floatValue];

       NSLog(@"%.2f",value1);

    2),将数字转为字符串对象

       NSString *str = [NSStringstringWithFormat:@"%f",5.2];

  11,字符串大小写转换

     1),将@"lan OU"全部转换为大写关键词 uppercaseString

       NSString *upperStr = [@"lan OU iS a big coMpany"uppercaseString];

       NSLog(@"%@",upperStr);

       

       

     2),将@"lan OU"全部转换为小写 关键词 lowercaseString

        upperStr = [@"lan OU iS a big coMpany"lowercaseString];

       NSLog(@"%@",upperStr);

 

       

      3),将@"lan OU"每个单词的首字母大写 关键词capitalizedString

        upperStr = [@"lan OU iS a big coMpany"capitalizedString];

       NSLog(@"%@",upperStr);

12,将C语言的字符串转换为OC里的字符串对象 关键词 initWithUTF8String:

例如:

       char password[20] = {}; //定义一个密码

       NSLog(@"请输入密码:");

       scanf("%s",password);

在这里先定义一个NSString类型的对象passWord用来接收从C语言的字符串password转换的OC对象

       NSString *passWord= [[NSStringalloc]initWithUTF8String:password];


 

 

二,NSMutableString常用用法

 

 对可变字符串的增删改方法,都是在原字符串的基础上进行修改的,所有修改之后的原字符串的内容发生了改变,所有无需返回值

由于字符串可改变,因此每一次操作后原字符串都改变为操作后的字符串

1,创建一个可改变的字符串对象   关键词stringWithFormat

例如:       NSMutableString *str1 = [NSMutableStringstringWithFormat:@"lanouhenan"];

 2.字符串拼接

       例如 :在字符串str1基础上拼接Frank

        [str1appendFormat:@"%@",@"Frank"];

       NSLog(@"%@",str1);(输出结果为:lanouhenanFrank)

 

       3.删除字符串.  关键词  deleteCharactersInRange

              例如       在原字符串的基础上删除henan

        [str1deleteCharactersInRange:NSMakeRange(5,5)];

       NSLog(@"%@",str1); (输出结果为:lanouFrank)

 

       4) 插入字符串 关键词 insertString: atIndex:

              例如       在原字符串的基础上插入lanou

        [str1insertString:@";lanou"atIndex:0];

       NSLog(@"%@",str1); (输出结果为:lanoulanouFrank)

 

       5)在原字符串基础上将替换其中一个对象 关键词replaceCharactersInRange

例如  在原字符串基础上将Frank替换成Duke;

        [str1replaceCharactersInRange:NSMakeRange(10,5)withString:@"Duke"];

       NSLog(@"%@",str1); (输出结果为:lanoulanoDuke)


网站栏目:ios不可改变NSString类和可改变NSMutableString类的使用 
标题网址:http://azwzsj.com/article/igsdgh.html