NSString的常用方法
1 #pragma mark 字符串的大小写处理 2 void caseTest() { 3 NSString *str = @"GuangDong"; 4 // 转成大写 5 NSLog(@"大写:%@", [str uppercaseString]); 6 // 转成小写 7 NSLog(@"小写:%@", [str lowercaseString]); 8 // 首字母变大写,其他字母变小写 9 NSLog(@"首字母变大写:%@", [@"aGE" capitalizedString]); 10 } 11 12 #pragma mark 字符串的比较 13 void compare() { 14 // 检测字符串的内容是否相同 15 BOOL result = [@"abc" isEqualToString:@"abc"]; 16 NSLog(@"%i", result); 17 18 // NSOrderedAscending 右边的字符串比左边大 19 // NSOrderedSame 两个字符串的内容相同 20 // NSOrderedDescending 左边的字符串比右边的大 21 NSComparisonResult result2 = [@"abc" compare:@"Abc"]; 22 if (result2 == NSOrderedSame) { 23 NSLog(@"两个字符串的内容相同"); 24 } else if (result2 == NSOrderedAscending) { 25 NSLog(@"右边 > 左边"); 26 } else if (result2 == NSOrderedDescending) { 27 NSLog(@"右边 < 左边"); 28 } 29 } 30 31 #pragma mark 字符串的搜索 32 void search() { 33 NSString *str = @"123456456.txt"; 34 35 NSLog(@"是否以22开头:%i", [str hasPrefix:@"22"]); 36 NSLog(@"是否以txt结尾:%i", [str hasSuffix:@"txt"]); 37 38 // 搜索字符串 39 NSRange range = [str rangeOfString:@"456"]; 40 // range.length == 0 41 if (range.location == NSNotFound) { 42 NSLog(@"不能找到"); 43 } else { 44 NSLog(@"找到的范围是:%@", NSStringFromRange(range)); 45 } 46 47 // 从尾部开始搜索字符串 48 range = [str rangeOfString:@"456" options:NSBackwardsSearch]; 49 NSLog(@"%@", NSStringFromRange(range)); 50 51 // 指定范围进行搜索 52 // [str rangeOfString:@"456" options:NSBackwardsSearch range:<#(NSRange)#>]; 53 } 54 55 #pragma mark 字符串的截取 56 void subString() { 57 NSString *str = @"123456"; 58 // NSMutableString *str1 = [NSMutableString stringWithString:str]; 59 NSRange range2 =[str rangeOfString:@"123"]; 60 NSLog(@"%@",NSStringFromRange(range2)); 61 [str stringByReplacingCharactersInRange:range2 withString:@"abc" ]; 62 NSLog(@"===%@",[str stringByReplacingOccurrencesOfString:@"1" withString:@"111" ]); 63 // 从索引3开始截取到尾部(包括3) 64 NSLog(@"%@", [str substringFromIndex:3]); 65 66 // 从头部开始截取到索引3之前(不包括3) 67 NSLog(@"%@", [str substringToIndex:3]); 68 69 // 指定范围进行截取 70 NSRange range = NSMakeRange(2, 3); 71 NSLog(@"%@", [str substringWithRange:range]); 72 73 NSString *str2 = @"a-b-c-d-5"; 74 NSArray *array = [str2 componentsSeparatedByString:@"-"]; 75 NSLog(@"%@", array); 76 77 NSString *str3 = [array objectAtIndex:0]; 78 NSLog(@"%@", str3); 79 } 80 81 #pragma mark 与路径相关 82 void pathTest() { 83 // 快速创建一个自动释放的数组 84 NSMutableArray *components = [NSMutableArray array]; 85 [components addObject:@"Users"]; 86 [components addObject:@"MJ"]; 87 [components addObject:@"Desktop"]; 88 // 将数组中的所有字符串拼接成一个路径 89 NSString *path = [NSString pathWithComponents:components]; 90 NSLog(@"%@", path); 91 92 // 将路径分解成一个数组 93 NSArray *cmps = [path pathComponents]; 94 NSLog(@"%@", cmps); 95 96 // path是一个字符串常量,是不可变的 97 path = @"/users/mj/test"; 98 // 判断是够为绝对路径(依据是前面有无/) 99 NSLog(@"%i", [path isAbsolutePath]); 100 NSLog(@"最后一个目录:%@", [path lastPathComponent]); 101 // 删除最后一个目录 102 NSLog(@"%@", [path stringByDeletingLastPathComponent]); 103 // 在最后面拼接一个目录 104 NSLog(@"%@", [path stringByAppendingPathComponent:@"abc"]); 105 } 106 107 #pragma mark 拓展名处理 108 void extension() { 109 NSString *str = @"/User/MJ/test.txt"; 110 111 NSLog(@"拓展名:%@", [str pathExtension]); 112 // 删除拓展名 113 NSLog(@"%@", [str stringByDeletingPathExtension]); 114 // 添加拓展名 115 NSLog(@"%@", [@"abc" stringByAppendingPathExtension:@"mp3"]); 116 } 117 118 #pragma mark 其他用法 119 void other() { 120 NSString *str = @"12"; 121 int a = [str intValue]; 122 NSLog(@"%i", a); 123 124 // 计算字数,不是计算字符数 125 NSLog(@"length=%zi", [@"我是字符串123" length]); 126 127 // 取出对应的字符 128 unichar c = [@"abc" characterAtIndex:0]; 129 NSLog(@"%c", c); 130 131 // 返回C语言中的字符串 132 const char *s = [@"abc" UTF8String]; 133 NSLog(@"%s", s); 134 } 135