IOS基础---Objective-C学习之总结NSString常用方法

字符串大小写转换

NSString *str = @"ChengDu";

 

// 转成大写 输出:CHENGDU

    NSLog(@"大写:%@", [str uppercaseString]);

 

// 转成小写 输出:chengdu

    NSLog(@"小写:%@", [str lowercaseString]);

 

// 首字母变大写 输出:Chengdu

    NSLog(@"首字母变大写:%@", [@"chengDu" capitalizedString]);


 

字符串的比较  

// 检测两个字符串内容是否相同

    BOOL result = [@"abc" isEqualToString:@"abc"];
    NSLog(@"%i", result); // 输出:1
    
    // 逐字符地进行比较两个字符串的大小
    // NSOrderedAscending 左边 < 右边
    // NSOrderedSame 相同
    // NSOrderedDescending 左边 > 右边
    NSComparisonResult result2 = [@"abc" compare:@"Abc"];
    if (result2 == NSOrderedAscending) {
        NSLog(@"左边 < 右边");
    } else if (result2 == NSOrderedDescending) {
        NSLog(@"左边 > 右边");
    } else if (result2 == NSOrderedSame) {
        NSLog(@"左边 = 右边");
    }


    // 忽略大小写进行比较,其他的和compare一致
    [@"abc" caseInsensitiveCompare:@"Abc"]; 

 

字符串的搜索

    NSString *str2 = @"123456456.txt";
 
    NSLog(@"是否以22开头:%i", [str2 hasPrefix:@"22"]); // 输出:0
    NSLog(@"是否以txt结尾:%i", [str2 hasSuffix:@"txt"]); // 输出:1
    
    NSRange range = [str2 rangeOfString:@"456"];
    if (range.location == NSNotFound) { // 或者 range.length == 0;
        NSLog(@"不能找到");
    } else {
        NSLog(@"找到的范围是:%@", NSStringFromRange(range)); // 输出:{3,3}
    }
    
    // 从尾部开始搜搜字符串
    range = [str2 rangeOfString:@"456" options:NSBackwardsSearch];
    NSLog(@"找到的范围是:%@", NSStringFromRange(range)); // 输出:{6,3}
    
    // 指定范围进行搜索
    //[str rangeOfString:<#(NSString *)#> options:<#(NSStringCompareOptions)#> range:<#(NSRange)#>];


 

字符串的截取  

NSString *str3 = @"123456";

    
    // 从索引3开始截取到尾部(包括索引3)
    NSLog(@"%@", [str3 substringFromIndex:3]); // 输出:465
    
    // 从头部开始截取到索引3之前(不包括索引3)
    NSLog(@"%@", [str3 substringToIndex:3]); // 输出:123
    
    // 指定范围进行截取
    NSRange range1 = NSMakeRange(2, 3);
    NSLog(@"%@", [str3 substringWithRange:range1]); // 输出:345
    
    // 用指定字符分割字符串
    NSString *str4 = @"1-2-3-4-5";
    NSArray *array = [str4 componentsSeparatedByString:@"-"];
    NSLog(@"%@", array); // 输出:(1,2,3,4,5) 就是打印数组那种格式

 

与路径相关

// 快速创建一个自动释放的数组,把三个字符串对象添加进去

    NSMutableArray *components = [NSMutableArray array];
    [components addObject:@"Users"];
    [components addObject:@"Lvxing"];
    [components addObject:@"Desktop"];
    

// 将数组中的所有字符拼接成一个路径

    NSString *path = [NSString pathWithComponents:components];
    NSLog(@"%@", path);
    
    // 将路径分解成一个数组
    NSArray *cmps = [path pathComponents];
    NSLog(@"%@", cmps); // 输出:(Users,Lvxing,Desktop)

    
    // 判断是否为绝对路径(依据是前面有无/)
    path = @"/Users/lvxing/Desktop/untitled folder/随堂练习/Foundation-NSString常用方法";
    NSLog(@"%i", [path isAbsolutePath]); // 输出:1
    
    // 最后一个目录
    NSLog(@"最后一个目录:%@", [path lastPathComponent]);
    

// 删除最后一个目录 字符串path结尾变成随堂练习

    NSLog(@"%@", [path stringByDeletingLastPathComponent]);
    

// 在最后面拼接一个目录 会将abc拼接在字符串path后面

    NSLog(@"%@", [path stringByAppendingPathComponent:@"abc"]);

    

拓展名处理 

    // 依据是.
    NSString *str5 = @"/Users/lvxing/Desktop/test.txt";
    NSLog(@"%@", [str5 pathExtension]); // 输出:txt
    
    // 删除拓展名 结尾变成 test
    NSLog(@"%@", [str5 stringByDeletingPathExtension]);
    
    // 添加拓展名
    NSLog(@"%@", [@"abc" stringByAppendingPathExtension:@"mp3"]); // 输出:abc.mp3

    

其他用法

    // 把字符串数字转成数字
    NSString *str6 = @"12";
    int a = [str6 intValue];
    NSLog(@"%i", a); // 输出:12
    
    // 计算字数,不是计算字符数
    NSLog(@"length = %lu", [@"我是字符串123" length]); // 输出:length = 8

    
    // 取出对应字符
    unichar c = [@"abc" characterAtIndex:0];
    NSLog(@"%c", c); // 输出:a
    
    // 返回C语言中的字符串
    const char *s = [@"abc" UTF8String];
    NSLog(@"%s", s); // 输出:abc


 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值