字符串大小写转换
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