oc 知识总结一(NSString、NSMutableString)

本文主要介绍了Objective-C中的NSString和NSMutableString的使用,包括创建、常用方法如大小写转换、比较、转换为基本数据类型、截取、拼接、分割以及可变字符串的插入、删除和替换操作。通过实例展示了各种操作的实现方式。

注:
  • OC中提供了NSString类,⽤于处理字符串对象,oc语⾔言的字符串必须以@开头,引号当中则是字符串的内容,例如@”abc” 

一、NSString(不可变字符串)

1、创建字符串

1>方法一、使用字符串常量

  NSString *str=@"helloabc";

  NSLog(@"%@",str);

输出结果:

 

2>方法二、使用类方法

  NSString *str1=[NSStringstringWithFormat:@"%i",5];

  NSString *str2=[NSStringstringWithUTF8String:"hello!"];

    NSLog(@"%@",str1);

  NSLog(@"%@",str2);

输出结果:


2、字符串的常用方法

1>获取字符串的长度(length)

 NSLog(@"%ld",[strlength]);


2>改变字符串大小写

uppercaseString  转换大写

lowercaseString  转换小写

capitalizedString 首字母大写,其他字母小写

例子:

       NSString *str=@"helloabc";

      NSLog(@"%@",[struppercaseString]);//转化成大写

      NSLog(@"%@",[strlowercaseString]);//转化成小写

      NSString *str3=@"hello, world!";

      NSLog(@"%@",[str3capitalizedString]);//开头字母大写


输出的结果:



3>比较两个字符串的是否相等

(1)isEqualTo:判断两个对象是否相等

(2)isEqualToString:判断这个对象是否等于你所给的字符串

例1:

      NSString *str=@"helloabc";

       NSString *str3=@"hello, world!";

        if([str3isEqualTo:str]){

            NSLog(@"两个字符串相等");

        }else{

            NSLog(@"两个字符串不相等");

        }

输出结果:

例2:

NSString *str3=@"hello, world!";

if([str3isEqualToString:@"hello, world!"]){

            NSLog(@"两个字符串相等");

}else{

            NSLog(@"两个字符串不相等");

}

输出结果:


4>将字符串转换为基本数据类型

(1)转换成int类型:[string intValue];

(2)转换成float类型:[string floatValue];

(3)转换成double类型:[string doubleValue];

(4)转换成bool类型:[string boolValue];

例:

        NSString *str = [NSStringstringWithFormat:@"%i",20];

        NSLog(@"%i",[strintValue]);

        NSLog(@"%f",[strfloatValue]);

        NSLog(@"%f",[strdoubleValue]);

        NSLog(@"%d",[strboolValue]);

输出结果:


5>截取字符串

(1)方法一:substringToIndex:从0开始截取到指定位置,不包含指定位置[0,index)

(2)方法二:substringFromIndex:从指定位置开始截取到末尾[index,length-1]

(3)方法三:substringWithRange:截取一个区间

例:

//------------------------------截取字符串-----------------------------------------------------

        NSString *str=@"hello+world!";

       //方法1:从0开始截取到指定位置,不包含指定位置[0index

        NSString *str1=[strsubstringToIndex:5];

        NSLog(@"%@",str1 );

        //方法2:从指定位置开始截取到末尾,[index,length-1]

        NSString *str2=[strsubstringFromIndex:6];

        NSLog(@"%@",str2 );

        //方法3:截取一个区间

        NSRange rang=NSMakeRange(3,5);

        NSString *str3=[strsubstringWithRange:rang];

        NSLog(@"%@",str3);


输出结果:


6>拼接字符串

stringWithFormat:

例:

//-------------------------------拼接字符串---------------------------------------------------

       NSString *name =@"sunshine_leaf";

        int age = 18;

        NSString *str = [NSStringstringWithFormat:@"^_^我的姓名:%@,年龄:%i!!!!^_^",name,age];

        NSLog(@"拼接的字符串:%@",str);

输出结果:

7>追加字符串
(1)stringByAppendingString:
(2)stringByAppendingFormat:
例:

//----------------------------------追加字符串----------------------------------------------------------

        NSString *name =@"sunshine_leaf";

        NSString *str  = [name stringByAppendingString:@"阳光_叶子"];

        NSString *str1 = [namestringByAppendingFormat:@"寓意:%@",@"在光明,温暖的地方的一片小小的叶子"];

        NSLog(@"使用第一种方法的结果:%@,\n使用第二种方法的结果:%@",str,str1);


输出结果:


8>将字符串分割成数组

componetsSeparatedByString:以某个字符为分割依据

 //-----------------------------------将字符串分割成数组-------------------------------------------

        NSString *str =@"1,2,3,4,5,6,7,8";

        NSArray *array = [strcomponentsSeparatedByString:@","];

        for (NSString *sin array) {

            NSLog(@"数组中的元素:%@",s);

        }


输出结果:




二、NSMutableString(可变字符串)

1、创建可变字符串
(1)方式一:创建一个空的字符串

NSMutableString *str=[NSMutableStringstring];

(2)方式二:创建一个指定大小的字符串

NSMutableString *str=[NSMutableStringstringWithCapacity:100];

(3)方式三:创建一个指定内容的字符串

NSMutableString *str3=[NSMutableStringstringWithString:@"hello"];

2、给可变字符串设置值

setString:

示例:

       // 创建一个空的字符串

        NSMutableString *str=[NSMutableStringstring];

        [str setString:@"你好"];

        NSLog(@"str:%@",str);

        //创建一个指定大小的字符串

        NSMutableString *str2=[NSMutableStringstringWithCapacity:100];

        [str2 setString:@"世界"];

        NSLog(@"str2:%@",str2);

        //设置字符串内容setString

        NSMutableString *str3=[NSMutableStringstringWithString:@"hello"];

        [str3 setString:@"world"];

        NSLog(@"str3:%@",str3);


输出结果:


注:使用setString:会把原有的字符串变成了设置的那个字符串,相当于覆盖了。

3、给可变字符串插入字符

insertString:atIndex:在指定插入字符

例:

        NSMutableString *str=[NSMutableStringstring];

        //在空字符串的前面插入一个字符

        [str insertString:@"1"atIndex:0];//每次插入的都是o号位置

        [str insertString:@"1"atIndex:0];

        [str insertString:@"1"atIndex:0];

        [str insertString:@"1"atIndex:0];

         NSLog(@"str%@",str);

       //创建一个指定大小的字符串

        NSMutableString *str2=[NSMutableStringstringWithCapacity:100];

        [str2 setString:@"世界"];

        [str2 insertString:@"时间"atIndex:1];

        NSLog(@"str2%@",str2);

        //设置字符串内容setString

        NSMutableString *str3=[NSMutableStringstringWithString:@"hello"];

        [str3 insertString:@"world"atIndex:4];

        NSLog(@"str3%@",str3);

输出结果:

4、给可变字符串拼接字符
appendString:拼接
appendFormat:格式化拼接
例:

        //将用户名和域名拼接成邮箱

        NSString *userName=@"zhangsan";

        NSString *domainName=@"163.com";

        NSMutableString *email=[NSMutableStringstring];

        //方法一:使用appendString进行拼接

        [email appendString:userName];

         NSLog(@"%@",email);

        [email appendString:@"@"];

        NSLog(@"%@",email);

        [email appendString:domainName];

        NSLog(@"%@",email);

        //方法二:使用appendFormat进行拼接

        [email appendFormat:@"%@@%@",userName,domainName];

         NSLog(@"%@",email);

输出结果:

5、删除字符串
deleteCharactersInRange:从指定范围中删除元素
例:

        //删除字符串

        NSMutableString *str4=[NSMutableStringstringWithString:@"hello world!#$"];

        NSRange rang=NSMakeRange(6,7);

        [str4 deleteCharactersInRange:rang];

        NSLog(@"%@",str4);

输出结果:
6、替换字符串

replaceCharactersInRange: withString:用指定的字符串在指定的范围进行替换

例:

       //替换字符串

        NSMutableString *str=[NSMutableStringstringWithString:@"hello world!#$"];

        NSRange rang=NSMakeRange(6,7);

        [str replaceCharactersInRange:rangwithString:@"叶子"];

        NSLog(@"%@",str);


输出结果:





评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值