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