iOS字符串的常用方法

iOS字符串的常用方法

一、 不可变字符串

//创建一个不可变字符串
        //1.使用一个实例方法创建了一个字符串
        NSString *str1 = [[NSString alloc]init];; //存在代码区
        //2.字面量方法创建一个字符串(语法糖)
        NSString *str2 = @"hello";
        NSLog(@"str2 is %@",str2);
        //3.字符串转化成数字型再计算(intValue, floatValue)
        NSString *str3 = @"2020";
        int s = [str3 intValue];
        int d = s + 1;
        NSLog(@"字符串转化成数字型再计算:%d",d);
        //4.数字型转化为字符串
        int z = 12345;
        NSString *g = [NSString stringWithFormat:@"%d",z];
        NSLog(@"数字型转化为字符串:%@",g);
        //5.使用已有的字符串创建一个新的字符串
        NSString *str4 = [[NSString alloc]initWithString:str3];
        NSLog(@"str4 is %@",str4);
        //6.遍历构造器来创建一个字符串对象(一般情况下,每一个实例化方法,都会有一个实例构造器方法)
        NSString *str5 = [NSString stringWithString:str4];
        NSLog(@"str5 is %@",str5);

二、不可变字符串的常用操作方法

 //获取字符串长度
        NSInteger length = str5.length;
        NSLog(@"length is %ld",length);
        //获取指定索引位置的字符:索引技术从零开始计数
        char c = [str5 characterAtIndex:3];
        NSLog(@"c is %c",c);
        //字符串查找:判断是否以参数给定的字符串开头。是,返回真;否,返回假。
        BOOL result1 = [str5 hasPrefix:@"2"];
        NSLog(@"result1:%d",result1);
        //字符串查找:判断是否以参数给定的字符串结尾。是,返回真;否,返回假。
        BOOL result2 = [str5 hasSuffix:@"2"];
        NSLog(@"result2:%d",result2);
    //字符串查找:查询某个string的范围信息,使用一个结构体NSRange包含两个成员变量:location(要查找的起始位置)和length(从当前位置向后数多长).
        NSString *str6 = @"sayhelloworld";
        NSRange range = [str6 rangeOfString:@"yhello"];
        NSLog(@"location = %ld, length = %ld", range.location, range.length);
        //字符串的截取
        NSString *str7 = @"handily";
        //获取从第5位到最后一位字符,截取前面的字符串
        NSString *str8 = [str7 substringFromIndex:5];
        NSLog(@"截取后的字符串为:%@",str8);
        //获取第0位到第5位的字符串(不包括第五位)
        NSString *str9 = [str7 substringToIndex:5];
        NSLog(@"截取后的字符串为:%@", str9);
        //获取第2位后的四位字符串
        NSString *str10 = [str7 substringWithRange:NSMakeRange(2, 4)];
        NSLog(@"截取后的字符串为:%@",str10);
        /***
         * 字符串的大小转化:
         * 1.将所有字符串内容变为大写字母: uppercaseString
         * 2.将所有字符串内容变为小写字母: lowercaseString
         * 3.将单词的首字母小写变为大写字母: capitalizedString
         **/
        //将所有字符串内容变为大写字母
          NSString *str11 = [str7 uppercaseString];
          NSLog(@"str11 is %@",str11);
        //将所有字符串内容变为小写字母
          NSString *str12 = [str7 lowercaseString];
          NSLog(@"str12 is %@",str12);
        //将单词的首字母小写变为大写字母
        NSString *str13 = [str7 capitalizedString];
        NSLog(@"str13 is %@",str13);
        //字符串拼接:将两个字符串拼在一起后形成一个新的字符串,原来两个字符串并未发生改变
        NSString *h = @"2020年";
        NSString *j = @"3月";
        NSString *k = @"7号";
        NSString *riqi = [[[[h stringByAppendingString:@"_"]
                            stringByAppendingString:j]
                           stringByAppendingString:@"_"]
                          stringByAppendingString:k];
        NSLog(@"%@",riqi);
        //比较两个字符串是否相等
        BOOL result3 = [h isEqualToString:j];
        NSLog(@"result3:%d",result3);
        //字符串修改:给定一个字符串判断后缀是否为.png,如果不是则修改为.png
        NSString *str14 = @"啦啦啦.xib";
        BOOL result4 = [str14 hasSuffix:@".png"];
        if (!result4) {
            //字符串的替换
            NSString *str15 = [str14 stringByReplacingOccurrencesOfString:@".xib" withString:@".png"];
            NSLog(@"str15 is %@",str15);
        }
        // 数组与字符串的相互转化
        //分割字符串(将字符串转化成数组 - componentsSeparatedByString:)
        NSString *nbc = @"2020.3.7";
        NSArray *arr = [nbc componentsSeparatedByString:@"."];
        NSLog(@"arr = %@", arr);
        /**
         打印: arr = (
         2020,
         3,
         7
     )
         */
        NSLog(@"分割后的字符串:%@",p);
        //将数组转化成字符串 - componentsJoinedByString:
        NSArray *array = @[@"a",@"b",@"c",@"d"];
        NSString *string = [array componentsJoinedByString:@","];
        NSLog(@"string = %@",string);    //打印: string = a,b,c,d
        //字符串的末尾追加新的字符串
        NSString *bbc = @"www.cn";
        NSString *bbc1 = [bbc stringByAppendingString:@"itcast.cn"];
        NSLog(@"字符串的末尾追加新的字符串:%@",bbc1);
        //带引号的字符串
        NSString *string = @"hello,\"world\"";
        NSLog(@"带引号的字符串:%@",string);
        NSString *string2 = [NSString stringWithFormat:@"hello,\"%@\"",@"世界"];
        NSLog(@"拼接字符串:%@",string2);

三、可变字符串的常用操作

//可变字符串才可以编辑
        //1.字符串的插入
        NSMutableString *mStr1 = [[NSMutableString alloc]initWithString:@"hello1"];//存在堆区
        NSLog(@"mStr1 is %@",mStr1);
        //1.可变字符串拼接
        [mStr1 appendString:@"啦啦啦"];
        NSLog(@"拼接后的字符串:%@",mStr1);
        //把一个字符串插入另一个字符串中的某一位置
        [mStr1 insertString:@"234" atIndex:0];
        NSLog(@"字符串插入:%@",mStr1);
        //2.字符串覆盖替换
        NSRange range1 = {1, 2};
        [mStr1 replaceCharactersInRange:range1 withString:@"dffdf"];
        NSLog(@"字符串覆盖替换:%@",mStr1);
        //3.删除指定范围的字符串
        [mStr1 deleteCharactersInRange:NSMakeRange(0, 2)];
        NSLog(@"删除指定范围的字符串:%@",mStr1);

四、可变字符串与不可变字符串的区别和联系
1.可变字符串是不可变字符串的子类,继承了所有方法
2.可变字符串声明的拼接、替换、插入、删除等操作不是继承自父类
3.不可变字符串本身不能被修改,一旦被赋值了就不能被改变了
4.对不可变字符串的修改操作,操作的是原字符串的副本,得到的是一个新的字符串。
5.可变字符串本身可以被修改,创建赋值后还可以动态更改该字符串的内容和长度
6.可变字符串修改的是原字符串,因此可变字符串的操作方法没有返回值

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值