------
Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
字符串大小写转换
- 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 charchar *s = [@"abc" UTF8String];
- NSLog(@"%s", s); // 输出:abc