Objc-C 知识点回顾 四 NSString 、NSMutableString

1.NSString
    //NSString:不可变字符串, 一旦创建, 不能修改
    //初始化方法
    //创建空字符串
    NSString *string1 = [[NSString alloc] init];
    NSLog(@"%@", string1);
     //根据给定的常量字符串,创建NSString对象
    NSString *string2 = [[NSString alloc] initWithString:@"iPhone"];
    NSLog(@"%@", string2);
     //常量区字符串
    NSString *string3 = @"iPhone";
    NSLog(@"%@", string3);
    NSLog(@"%p", string3);//输出地址
    //如果要创建的字符串中出现其他变量, 需要用initWithFormat的方式创建
    NSInteger version = 6;
    NSString *string4 = [[NSString alloc] initWithFormat:@"iPhone %ld", version];
    NSLog(@"%@", string4);
   
   //便利构造器
    NSString *str1 = [NSString string];
    NSLog(@"%@", str1);
    NSString *str2 = [NSString stringWithString:@"iOS"];
    NSLog(@"%@", str2);
     NSString *str3 = @"iOS";
    NSLog(@"%@", str3);
    NSString *str4 = [NSString stringWithFormat:@"iOS %ld", version];
    NSLog(@"%@", str4);
    //获取字符串的长度
//    NSUInteger length = [str4 length];//调用getter方法
//    NSLog(@"%lu", length);
    NSLog(@"%lu", str4.length);//点语法
    //判断字符串是否以置顶字符串开始或结束
    NSString *str5 = @"abcdpp123";//常量区字符串
    NSString *str6 = [[NSString alloc] initWithFormat:@"abcdpp123"];//堆区字符串
    //前缀
    BOOL result = [str6 hasPrefix:@"abd"];
    NSLog(@"%d", result);
    //后缀
    result = [str6 hasSuffix:@"23"];
    NSLog(@"%d", result);
    //字符串截取(截取子字符串)
    //获取abc(开头字符串)
    NSString *subStr1 = [str6 substringToIndex:3];
    NSLog(@"%@", subStr1);
    //获取123(结尾字符串)
    NSString *subStr2 = [str6 substringFromIndex:6];
    NSLog(@"%@", subStr2);
    //获取dpp(中间字符串)
    //NSRange range = {3, 3};
    NSString *subStr3 = [str6 substringWithRange:NSMakeRange(3, 3)];
    NSLog(@"%@", subStr3);
    //拼接字符串
    NSString *newSubStr = [subStr1 stringByAppendingString:subStr2];
    NSLog(@"%@", subStr1);
    NSLog(@"%@", subStr2);
    NSLog(@"%@", newSubStr);
    NSLog(@"%p", newSubStr);//输出地址
    NSString *newSubStr1 = [NSString stringWithFormat:@"%@%@", subStr1, subStr2];
    NSLog(@"%@", newSubStr1);
    NSLog(@"%p", newSubStr1);//输出地址
    //替换字符串
    //@"NBA" -> @"CBA";
    NSString *str7 = @"NBANNN";
    NSString *newSubStr2 = [str7 stringByReplacingOccurrencesOfString:@"N" withString:@"C"];
    NSLog(@"%@", newSubStr2)
    //字符串比较
    //@"NBA" 和 @"CBA";
//    NSString *str8 = @"NBA";
//    NSString *str9 = @"CBA";
    NSString *str8 = [[NSString alloc] initWithFormat:@"NBA123456aa"];
    NSString *str9 = [[NSString alloc] initWithFormat:@"NBA123456aa"];
    //isEqualToString比较的是字符串的内容
    if ([str8 isEqualToString:str9]) {
        NSLog(@"字符串相等");
    } else {
        NSLog(@"不一致");
    }
    //==比较两个对象是否一致, 如果对象一致, 他们的内容一定一致
    if (str8 == str9) {
        NSLog(@"字符串相等");
    } else {
        NSLog(@"不一致");
    }
    //字符串和数值类型相互转换
    //@"123"
    //转化成数字, 遇到非数字即停止转换
    NSString *str10 = @"123a456";
    int a = [str10 intValue];
    NSLog(@"%d", a);
    NSInteger b = [str10 integerValue];
    NSLog(@"%ld", b);
    //大小写转换操作
    //@"ios" -> @"iOS"
    NSString *str11 = @"ios";
    //全部大写
    NSString *newStr = [str11 uppercaseString];
    NSLog(@"%@", newStr);
    //首字母大写
    NSLog(@"%@", [str11 capitalizedString]);
    //全部小写
    NSLog(@"%@", [str11 lowercaseString]);
2.NSMutableString:可变字符串
    //@"iPhone"
    //创建可变字符串, 容器大小是一个预期值, 一般写为0, 让系统自己根据内容大小分配空间
    NSMutableString *mString = [[NSMutableString alloc] initWithCapacity:0];
    NSLog(@"%@", mString);
    //添加字符串
    [mString appendString:@"iPhone"];
    NSLog(@"%@", mString);
    [mString appendFormat:@"iPhone %ld", version];;
    NSLog(@"%@", mString);
    //插入字符串
    [mString insertString:@" " atIndex:6];
    NSLog(@"%@", mString);
    //删除字符串
    [mString deleteCharactersInRange:NSMakeRange(0, 7)];
    NSLog(@"%@", mString);
    //做个练习,给定一个图片文件名,判断字符串中是否以“png”结尾,如果是就替换成“jpg”,如果不是,就拼接”.jpg”。
    NSMutableString *name = [[NSMutableString alloc] initWithCapacity:0];
    [name appendString:@"蓝鸥.png"];
    if ([name hasPrefix:@"png"]) {
        NSLog(@"以'png'结尾");
        [name replaceCharactersInRange:NSMakeRange(name.length - 3, 3) withString:@"jpg"];
    } else {
        NSLog(@"不以'png'结尾");
        [name appendString:@".jpg"];
    }
    NSLog(@"%@", name);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值