NSString:创建,长度,取字符,是否以某字符串开头,结尾, 查找指定字符串的范围,截取,拼接,替换,比较,替换,数值转换,大小写转换

<span style="font-size:18px;">//1 创建对象
        //1 便利构造器(+号方法)
        NSString *str1 = [NSString stringWithFormat:@"iPhone%d", 5];
        NSLog(@"str1 = %@", str1);
        //2 alloc+初始化方法
        NSString *str2 = [[NSString alloc] initWithFormat:@"iPhone%d", 4];
        NSLog(@"str2 = %@", str2);
        //(3) 根据字符串初始化OC字符串对象
        NSString *str3 = @"lanou";//存储字符串@"lanou"的地址
        //2 求字符串长度
        NSUInteger length = [str3 length];
        NSLog(@"length = %lu", length);
        
        //3 获取字符串总的某个字符
        //Terminating app due to uncaught exception 'NSRangeException', reason: '-[__NSCFConstantString characterAtIndex:]: Range or index out of bounds'
        //reason:问题产生的原因 .NSCFString == NSString, 又是一个-号方法, 所以问题产生的原因是:让一个NSString的类型对象, 调用characterAtIndex:方法时, 给定的下标越界了, 超出了范围
        //解决方案:将数组下标修改为范围之内的数即可
        unichar charac = [str3 characterAtIndex:4];
        NSLog(@"%c", charac);
        
        //4 判断是否以指定的字符串开头或结尾
        //例如:判断一个字符串是否以http开头, 是否以.com结束
        NSString *str4 = [[NSString alloc] initWithFormat:@"http://www.baidu.com"];
        //判断是否以http开头
        BOOL isPrefix = [str4 hasPrefix:@"http"];
        NSLog(@"isPrefix = %d", isPrefix);
        
        BOOL isSuffix = [str4 hasSuffix:@".com"];
        NSLog(@"isSuffix = %d", isSuffix);
        
        //5 查找指定字符串的范围
        NSRange range = [str4 rangeOfString:@"www"];
        if (range.length == 0) {
            NSLog(@"No Found");
        } else {
        NSLog(@"location:%lu, length:%lu", range.location, range.length);
            //将NSRange类型的结构体变量转变成字符串对象
            NSLog(@"%@", NSStringFromRange(range));
        }
        
        //6 字符串截取(获取子字符串)
        //1 获取给定的下标之后的子串, 包含指定下标对应的字符
        //2 获取给定的下标之前的子串, 但是不包含指定下标对应的字符
        //3 获取指定范围内的子串
        NSString *subString1 = [str4 substringFromIndex:7];
        NSLog(@"subString1 = %@", subString1);
        
        NSString *subString2 = [str4 substringToIndex:7];
        NSLog(@"subString2 = %@", subString2);
        
        NSString *subString3 = [str4 substringWithRange:NSMakeRange(7, 4)];
        NSLog(@"subString3 = %@", subString3);
        
        //7 字符串拼接
        NSString *str5 = [NSString stringWithFormat:@"lanou"];
        //lanou后拼接henan
        NSString *str6 = [str5 stringByAppendingString:@"henan"];
        NSLog(@"str6 = %@", str6);
        //lanou后拼接henan9ban
        NSString *str7 = [str5 stringByAppendingFormat:@"%@%dban", str6, 9];//Format可以格式化输出
        NSLog(@"str7 = %@", str7);
        
        //8 替换字符串
        NSString *str8 = [NSString stringWithFormat:@"lanouououisbigcompany"];
        //1将o替换成牛逼
        //第一个参数是被替换字符串  第二个参数是替换字符串
        NSString *str9 = [str8 stringByReplacingOccurrencesOfString:@"ou" withString:@"牛逼"];
        NSLog(@"str9 = %@", str9);
        
        NSString *str10 = [str8 stringByReplacingCharactersInRange:NSMakeRange(3, 2) withString:@"牛逼"];
        NSLog(@"str10 = %@", str10);
        
        //9 字符串比较
        NSString *str11 = [NSString stringWithFormat:@"bbc"];
        NSString *str12 = [NSString stringWithFormat:@"bbc"];
        NSInteger result1 = [str11 compare:str12];
        NSLog(@"result1 = %ld", result1);
        
        NSComparisonResult result2 = [@"311" compare:@"222"];
        NSLog(@"result2 = %ld", result2);
        
        //10 字符串和数值类型转换  从第一个字符开始如果在遇到除了空格之外的字符时, 将前面的空格忽略掉, 继续往下找, 读取数字, 直到遇到非数字时结束
        //1 将字符串@"123"转换为整数123
        NSInteger result3 = [@"    12a3as" intValue];
        NSLog(@"%result3 = ld", result3);
        //2 将数字转为字符串对象
        NSString *str13 = [NSString stringWithFormat:@"%d", 5];
        NSLog(@"str13 = %@", str13);
        
        //11大小写装换
        //1 将@"lanOU"全部转为大写  uppercaseString 转为 LANOU
        //2 将@"lanOU"全部转为小写 lowercaseString 转为 lanou
        //3 将@"lanOU"首字母转为大写 capitalizedString 转为  Lanou
        NSString *str14 = [@"lanOU" capitalizedString];
        NSLog(@"str14 = %@", str14);</span>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值