NSString类笔记

本文详细探讨了Objective-C与Swift两种语言在iOS开发领域的应用与区别,包括其核心特性、优缺点及实际案例分析。

//字符串的创建

        NSString *str1=@"123";//创建一个字符串常量

        NSString *str2 = [[NSString alloc] initWithString:@"123"];

        NSString *str3 = [[NSString alloc] initWithString:str1];

        NSString *str4 = [NSString stringWithString:@"123"];

        NSString *str5 = [NSString stringWithString:str1];

        /*上面5种方法创建的区别:第2,4种一般简化成第一种,第3,5种后面可以是对象名str1,也可以是字符串常量,但他们都是对象,第3,5的区别是一个是实例方法创建,一个 是类方法创建(5是类方法创建)

         */

//创建格式化字符串

//与上面的区别,格式化字符串可以是基本数据类型,也可以是对象,但上面的只能是对象(基本数据类型不是对象)

 

 

 /*

 

         创建格式化字符串,格式化字符串创建在堆区,而快速创建的字符串存放在常量区

 

         */

      

int a =2;

        NSString *str6 =[[NSString alloc] initWithFormat:@"%d",a ];

        float f=1.2;

        NSString *str7 = [NSString stringWithFormat:@"%.1f",f];

        NSString *str = @"123";

        NSString *str8 = [NSString stringWithFormat:@"%@",str];

        NSLog(@"%@",str6);

        NSLog(@"%@",str7);

        NSLog(@"%@",str8);

 

/*

         测试2个字符串内容是否相同,用方法 str1 isEqualToString:str2,相等返回1/YES.

         */

        if ([str3 isEqualToString:str5])

        {

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

        }

 

/*

 

         比较2个字符串是否相同,用"==",这里实际上比较的是2个字符串的地址是否相同,这里str9与str10都是指向@"hehe"的地址,故他们相同,在oc中,声明的对象一般都是存放数据的地址

 

         */

 

        NSString *str9 = @"hehe";

 

        NSString *str10 = @"hehe";

 

        NSString *str11 = [NSString stringWithFormat:@"hehe"];

 

        NSString *str12 = [NSString stringWithFormat:@"hehe"];

 

 

 

        if (str9 == str10)

 

        {

 

            NSLog(@"两个字符串对象相等");//这里的对象换句话说就是存放内容的地址。为什么str9和str10的对象相同,而str9,str11,str12的对象不同?因为str9与str10存放在常量区,str11与str12存放在堆区,常量区相同内容的地址是同一个,只是变量名不同,而堆区是手动分配内存,不同的变量名地址不同,他们存放的地址也就???

 

        }

 

        else

 

        {

 

            NSLog(@"两个字符串对象不相同");

 

        }

 

        if (str11 == str12)

 

        {

 

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

 

        }

 

        else

 

        {

 

            NSLog(@"两个字符串对象不相同");

 

        }

 

        if (str9 == str11)

 

        {

 

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

 

        }

 

        else

 

        {

 

            NSLog(@"两个字符串对象不相同");

 

        }

 

        

 

        //比较字符串的大小,用caseInsensitiveCompare方法,该方法的返回值是-1,0,1,-1代表升序,1代表降序

 

        NSString *str13 = [[NSString alloc] initWithFormat:@"a"];

 

        NSString *str14 = [[NSString alloc] initWithFormat:@"b"];

 

        

 

        NSComparisonResult result = [str13 caseInsensitiveCompare:str14];

 

        NSLog(@"%ld",result);

 

        

 

        //求字符串的长度

 

        NSLog(@"%ld",[str10 length]);

 

        

 

        //改变字符串的大小写

 

        NSString *str15 = @"hello WORLD";

 

        NSLog(@"%@",[str15 uppercaseString]);//全部大写

 

        NSLog(@"%@",[str15 lowercaseString]);//全部小写

 

        NSLog(@"%@",[str15 capitalizedString]);//首字母大写,其余小写

 

        

 

        //字符串转化成数组

 

        NSString *str16 = @"abc bcd cdf";

 

        NSArray *arr1 = [str16 componentsSeparatedByString:@" "];

 

        NSLog(@"%@",arr1);

 

        

 

        //截取字符串

 

        NSString *str17 = @"abcdefg";

 

        NSString *str18 = [str17 substringFromIndex:2];//从下标为2截取到末尾

 

        NSString *str19 = [str17 substringToIndex:5];//从头截取到下标为5的位置

 

        NSString *str20 =[str17 substringWithRange:NSMakeRange(2, 4)];//从下标为2的地方截取长度为4的字符串

 

        NSLog(@"%@",str18);

 

        NSLog(@"%@",str19);

 

        NSLog(@"%@",str20);

 

        

 

        //字符串的拼接

 

        NSString *str21 = @"123";

 

        NSString *str22 = [[NSString alloc] initWithFormat:@"%@%@",str17,str21];

 

        NSString *str23 = [str17 stringByAppendingString:str21];

 

        NSString *str24 = [str17 stringByAppendingFormat:@"%@",str21];

 

        NSLog(@"%@",str22);

 

        NSLog(@"%@",str23);

 

        NSLog(@"%@",str24);

 

        

 

        //查询字符串对象

 

        NSRange range = [str23 rangeOfString:@"fg1"];

 

        if (range.location!= NSNotFound)

 

        {

 

            NSLog(@"字符串已经找到!");

 

        }

 

        

 

        //插入字符串

 

        NSMutableString *str25 = [NSMutableString stringWithString:@"字符串"];

 

        [str25 insertString:@"可变" atIndex:0];//在指定位置插入字符串

 

        NSLog(@"%@",str25);

 

        

 

        //删除字符串

 

        [str25 deleteCharactersInRange:NSMakeRange(1, 2)];//删除指定范围的字符串

 

        NSLog(@"新的字符串为:%@",str25);

 

        

 

        //替换字符串

 

        [str25 replaceCharactersInRange:NSMakeRange(0, 2) withString:@"hehe"];

 

        NSLog(@"最新的字符串为:%@",str25);

 

转载于:https://www.cnblogs.com/woshihuaidan/p/4737712.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值