OC菜鸟成长记-OC中的字符串

现在,对我所了解的OC中的字符串的创建、操作的知识进行总结。

首先是不可变字符串

//      NSString
        //初始化
        NSString *str1 = [NSString stringWithFormat:@"abcdefg"];
        NSString *str2 = [NSString stringWithString:str1];
        NSString *str3 = [[NSString alloc]initWithString:str2];
        NSString *str4 = [[NSString alloc]init];
        NSString *str5 = @"hijklmn";
        NSString *str6 = [NSString stringWithFormat:@"%@%@",str1,str5];
 //操作
        //截取
//        NSRange range = NSMakeRange(0, 1);
        NSRange range1 = [str1 rangeOfString:@"bc"];
        str4 = [str1 substringWithRange:range1];
        NSLog(@"str6=%@,str4=%@",str6,str4);
        NSRange range2 =[str6 rangeOfString:@"abcdefghijklmn"];
        str6 =[str6 substringWithRange:range2];
        
        //获得字符串的长度
        NSUInteger length = str6.length;
        
        //比较内容是否相同?
        if ([str1 isEqualToString:str6]) {
            NSLog(@"相同");
        }
        //前缀
        if ([str1 hasPrefix:@"ab"]) {
            NSLog(@"有前缀");
        }
        
        //后缀
        if ([str6 hasSuffix:@"mn"]) {
            NSLog(@"有后缀");
        }
                  
        //拼接字符串
        NSString *str8 = [NSString stringWithFormat:@"%@%@",@"haha",@"hehe"];
        NSLog(@"str8=%@",str8);
        
        NSString *str7 = [ @"hahaha"stringByAppendingString:str6];
        NSLog(@"str7=%@",str7);
        
        str7 = [str6 stringByAppendingString:@"hehehe"];
        NSLog(@"str7=%@",str7);
        
        //用于添加网址前缀或修改路径
        NSString *str9 =[str6 stringByAppendingPathComponent:str8];//或者[str6 stringByAppendingPathComponent:@""]
        NSLog(@"添加部分前面带/ str9=%@",str9);
        
        //用于添加文件后缀
        NSString *str10 =[str6 stringByAppendingPathExtension:str8];//或者[str6 stringByAppendingPathExtension:@""]
        NSLog(@"添加部分前面带. str10=%@",str10);
运行后的结果如下:

 oc_731_practise[17787:164553] str6=abcdefghijklmn,str4=bc
 oc_731_practise[17787:164553] 有前缀
 oc_731_practise[17787:164553] 有后缀
 oc_731_practise[17787:164553] str8=hahahehe
 oc_731_practise[17787:164553] str7=hahahaabcdefghijklmn
 oc_731_practise[17787:164553] str7=abcdefghijklmnhehehe
 oc_731_practise[17787:164553] 添加部分前面带/ str9=abcdefghijklmn/hahahehe
 oc_731_practise[17787:164553] 添加部分前面带. str10=abcdefghijklmn.hahahehe


然后是可变字符串,由于可变字符串时不可变字符串的子类,所以在不可变字符串中能够使用的方法也可以在可变字符串中使用(因此下面就不再重复。

//      NSMutableString
        //初始化
        //独特的初始化方法
        NSMutableString *mstr1 = [NSMutableString stringWithCapacity:200];
        mstr1 =[NSMutableString stringWithString: @"diao"];
        NSMutableString *mstr2= [[NSMutableString alloc]initWithCapacity:200];
        mstr2 = [NSMutableString stringWithFormat:@"hehe"];
        
//操作(可变字符串中特有的)
        //增加
        [mstr1 insertString:@"扑街" atIndex:4];//insertString方法无返回值
        [mstr2 appendString:@"你好"];
        [mstr2 appendFormat:@"再见"];
        
        //替换
        NSRange range3 = [mstr1 rangeOfString:@"扑街"];
        [mstr1 replaceCharactersInRange:range3 withString:@"**"];
        NSLog(@"修改后mstr1=%@",mstr1);
        
        
        //删除
        range1 = [mstr2 rangeOfString:@"再见"];
        [mstr2 deleteCharactersInRange:range1];
        NSLog(@"删除后mstr2=%@",mstr2);

运行后的结果如下:

 oc_731_practise[17787:164553] 修改后mstr1=diao**
 oc_731_practise[17787:164553] 删除后mstr2=hehe你好


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值