❀自我唠嗑OC-字符串

  1. 初始化方法
  2. 便利构造器
  3. 字面量–语法糖
  4. 字符串appending拼接
  5. 格式化字符串format拼接
  6. 字符串compare比较
  7. 测试字符串是否以NSString开始或结束
  8. 搜索字符串A是否存在于B
  9. 测试字符串是否相等isEqual
  10. 字符串substring截取
  11. 字符串replacing替换
  12. 字母大小写转换
  13. NSMutableString初始化
  14. NSNumber封装和解封
//OC中,字符串由Unicode字符组成.
//NSString:不可变字符串,创建之后内容长度不可更改;
//NSMutableString:可变字符串,创建之后内容可更改.
NSMutableString * str =[ [NSMutableString alloc] initWithFormat:@"123"];
NSLog(@"str = %p",str);
[str appendFormat:@"456"];
NSLog(@"str = %p",str);
//因为类型是nsmutablestring,改动自身内容,地址不会改变.

//NSString类型
NSString * str1 = [[NSString alloc] initWithFormat:@"123"];
NSLog(@"str1 = %p,str1");
str1 = [str1 stringByAppendingFormat:"456"];
NSLog(@"str1 = %p",str1); 
//调用了stringByAppendFormat方法,内部实现创建一个新NSString对象,地址发生变化,原有NSString地址是不变的

1.初始化方法

NSString *string = [[NSString alloc]] initWithFormat:@"Hello Kugou";

2.便利构造器

NSString *string = [NSString stringWithFormat:@"Hello Kugou"];

3.字面量–语法糖

NSString *string = @"Hello Kugou";

4.字符串appending拼接

NSString *string = @"天苍苍野茫茫,";
NSString *string1 = @"风吹草低现牛羊.";
    NSLog(@"%@",[string stringByAppendingString:string1]);
//NSLog(@"%@",[string stringByAppendingFormat:string1]);//⚠️format string is not a string literal (potentially insecure)
    NSLog(@"%@",[string stringByAppendingFormat:@"一枝红杏出墙来."]);
    NSString *string4 = [string stringByAppendingPathComponent:string1];
    NSLog(@"%@",string4);
    NSLog(@"%@",[string stringByAppendingPathComponent:@"代码越敲越疯狂."]);//在string后面加上"/"号连接下一句使其成为完整路径
    NSLog(@"%@",[string stringByAppendingPathExtension:@"娶错媳妇嫁错郎."]);//给string加后缀的

5.格式化字符串format拼接

    NSString *string3 = [NSString stringWithFormat:@"一枝红杏出墙来."];
    NSString *string2 = [NSString stringWithFormat:@"一骑红尘妃子笑,%@",string3];
    NSLog(@"%@",string2);

运行截图

6.字符串compare比较

//- (NSComparisonResult)compare:(NSString *)string;
    NSComparisonResult result = [string1 compare:string];
    switch (result) {
        case NSOrderedSame:
            NSLog(@"相同");
            break;
        case NSOrderedAscending:
            NSLog(@"前小后大");
            break;
        case NSOrderedDescending:
            NSLog(@"前大后小");
            break;
        default:
            break;
    }
NSString *bijiao = @"hellokugou";
    NSString *bijiao1 = @"hellokugouworlddog";
    NSLog(@"%ld",[bijiao compare:bijiao1]);

7.测试字符串是否以NSString开始或结束

//- (BOOL)hasPrefix:(NSString *)aString;
    NSLog(@"%d",[string3 hasPrefix:@"一枝红杏"]);//从索引0开始判断
    NSLog(@"%d",[string3 hasSuffix:@"出墙来啊"]);//从结尾开始判断
    if ([string3 hasPrefix:@"一枝红杏出墙"]) {
        NSLog(@"对哩");
    }
    if (![string3 hasSuffix:@"一骑红尘妃子笑"]){
        NSLog(@"不对啊");
        NSLog(@"%@",[string3 stringByReplacingCharactersInRange:NSMakeRange([string3 length]-8, 8) withString:@"一枝红杏出墙来"]);
    }

8.搜索字符串A是否存在于B

//- (NSRange)rangeOfString:(NSString *)aString;
    NSLog(@"%lu",(unsigned long)[bijiao1 rangeOfString:@"u"].location);

9.测试字符串是否相等isEqual

//- (BOOL)isEqualToString:(NSString *)aString; 
    NSLog(@"%d",[bijiao isEqualToString:@"world"]);

    if ([bijiao isEqualToString:@"kugou"]) {
        NSLog(@"相等");
    }else{
        NSLog(@"不相等");
    }

10.字符串substring截取

    //- (NSString *)substringFromIndex:(NSUInteger)from;
    NSLog(@"%@",[string3 substringFromIndex:2]);//指定位置后边字符
    //- (NSString *)substringToIndex:(NSUInteger)to;
    NSLog(@"%@",[string3 substringToIndex:4]);//从0索引到指定长度✌️
    //- (NSString *)substringWithRange:(NSRange)range;
    NSLog(@"%@",[string3 substringWithRange:NSMakeRange(2, 4)]);//(location,length)

11.字符串replacing替换

    //- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement NS_AVAILABLE(10_5, 2_0);
    NSLog(@"%@",[string3 stringByReplacingOccurrencesOfString:@"一" withString:@"两"]);//选择替换

    //- (NSString *)stringByReplacingCharactersInRange:(NSRange)range withString:(NSString *)replacement NS_AVAILABLE(10_5, 2_0);
    NSLog(@"%@",[string3 stringByReplacingCharactersInRange:NSMakeRange(2, 2) withString:@"菊花"]);//指定区域段替换

    //- (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)options range:(NSRange)searchRange NS_AVAILABLE(10_5, 2_0);
    NSLog(@"%@",[string3 stringByReplacingOccurrencesOfString:@"红杏" withString:@"木棍" options:NSLiteralSearch range:NSMakeRange(1,5)]);//指定范围内检索替换

12.字母大小写转换

    NSString *string6 = @"AbCdElalala";
    NSLog(@"%@",[string6 uppercaseString]);//全部大写
    NSLog(@"%@",[string6 lowercaseString]);//全部小写
    NSLog(@"%@",[string6 capitalizedString]);//首字母大写

13.NSMutableString初始化

//可变类必须先初始化,否则奔溃
    NSMutableString *mutableString = [NSMutableString string];//类方法初始化
    NSMutableString *mStr = [[NSMutableString alloc] init];//init实例方法初始化
    NSMutableString *mStr1 = [[NSMutableString alloc] initWithCapacity:0];//指定初始化方法,capacity是申请内存空间,但系统会根据字符串的增减自动调整内存大小
    //mutablestring 使用init初始化或类方法初始化时,利用setString进行赋值
    [mStr setString:@"avple"];
    [mStr insertString:@"p" atIndex:2];//第二个位置插入p
    [mStr deleteCharactersInRange:NSMakeRange(1, 1)];//删除指定范围内字符(location,length)
    NSLog(@"%@",mStr);

14.NSNumber封装和解封

    NSNumber *number = [NSNumber numberWithInt:123];//封装
    //int i = [numb intValue];
    //NSLog(@"%d",i);
    NSLog(@"%d",[number intValue]);//解封

    NSNumber *intNumber = @123;//Xcode新特性支持@[(基本数据类型)]
    NSLog(@"%d",[intNumber intValue]);

如果要存放基本数据类型,必须先将基本数据类型包装成对象类型然后再用集合类进行存储,OC中提供的包装类是NSNumber,NSValue。其中NSNumber继承于NSValue。NSNumber主要针对于基本数据类型的包装,NSValue主要针对结构体进行包装

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值