Objective-C中字符串类

NSString,不可变字符串,即创建以后内容和长度不可修改.

NSMutableString,可变字符串,即创建以后内容还可以修改.

不可变字符串(NSString)

创建字符串

1 // 创建字符串
2 NSString *str1 = [[NSString alloc] initWithString:@"QQ"];  
3 NSString *str2 = [NSString stringWithString:@"WeChat"];
4     // 字面量创建字符串
5     // 字面量也是语法糖 syntax sugar 简化字符串的创建过程
6 NSString *str3 = @"人人";
7 NSLog( @"%@", str3);

通常用字面量来创建字符串.

字符串的其他方法

 1 // 字符串长度
 2 NSLog(@"length: %lu", str3.length);
 3 // 取子串
 4 NSString *str4 = @"iPhone6Plus";   
 5 // fromIndex 从当前下标处取到字符串结尾 包含当前下标
 6 NSString *str5 = [str4 substringFromIndex:4];
 7 NSLog(@"%@", str5);
 8 // toIndex 从字符串开头位置取到某个下标处结束 不包含当前下标
 9 NSString *str6 = [str4 substringToIndex:4];
10 NSLog(@"%@", str6);
11 // withRange
12 // 通过范围结构体取子串
13 NSString *str7 = [str4 substringWithRange:NSMakeRange(3, 4)];
14 NSLog(@"%@", str7);
15    
16 // 拼接字符串 可以嵌套使用
17 NSString *str8 = [str4 stringByAppendingString:@"5288"];
18 NSLog( @"%@", str8);
19 
20 // 替换字符串 可以嵌套使用
21 NSString *str9 = [str8 stringByReplacingOccurrencesOfString:@"6Plus" withString:@"7s"];
22 NSLog( @"%@", str9);
23 
24 // 字符串相等判断
25 NSString *str10 = @"123";
26 NSString *str11 = @"123";
27 if (str10 == str11) {
28      NSLog(@"两个字符串对象的地址相同");
29    }
30 //    if ([str10 isEqualToString:str11]) {
31     NSLog(@"两个字符串对象的内容相同");
32     }
33 
34 // 判断前缀和后缀
35     if ([str9 hasPrefix:@"i"]) {
36        NSLog(@"有前缀");
37     }
38     if ([str9 hasSuffix:@"88"]) {
39         NSLog(@"有后缀");
40     }
41     if ([str9 hasPrefix:@"iPhone7s5288"]) {
42         NSLog(@"有前缀");
43     }
44     if ([str9 hasSuffix:@"iPhone7s5288"]) {
45         NSLog(@"有后缀");
46     }
47 
48 // 字符串比较
49 // ASC 升序 DESC 降序
50 NSString *str12 = @"iPhone6";
51 NSString *str13 = @"iPhone5s";
52 // 定义一个比较结果变量 用来存储字符串比较结果
53 NSComparisonResult result = [str12 compare:str13];
54 if (result == NSOrderedAscending) {
55        NSLog(@"升序");
56     } else if (result == NSOrderedDescending) {
57         NSLog(@"降序");
58     } else {
59         NSLog(@"相同");
60     }

万能转换公式

1 NSString *str14 = [NSString stringWithFormat:@"%@ lol %ld %f", str13, 100L, 3.1415];
2 NSLog(@"%@", str14);

可变字符串(NSMutableString)

    // 创建可变字符串
    NSMutableString *mstr = [NSMutableString string];
    
    // 可变字符串拼接
    [mstr appendString:@"iPhone"];
    // 插入
    [mstr insertString:@"Andriod" atIndex:2];
    NSLog( @"%@", mstr);

    // 删除
    [mstr deleteCharactersInRange:NSMakeRange(2, 7)];

    NSLog( @"%@", mstr);
    
    /*
     * 可变和不可变的区别
     * 不可变对象的操作 都是产生了新的对象 可变对象都是在原对象的基础上进行了操作
     */

 

posted @ 2015-03-01 15:12  苏叶  阅读(198)  评论(0编辑  收藏  举报