一、NSString
1.NSString 不可变字符串 里面的内容无法更改
1 //1.如何创建字符串对象 2 NSString *str = @"Jack" ; 3 NSLog(@"----%@",str); 4 5 //创建一个空的字符串对象 创建之后对象里面的内容是不能被改变的 6 //尽量不用 7 NSString *str2 = [[[NSString alloc] init] autorelease]; 8 NSString *str2_ = [NSString string]; 9 NSLog(@"----%@",str2); 10 11 //用已经存在的字符串对象去创建一个新的对象 12 NSString *str3 = [[[NSString alloc] initWithString:str] autorelease]; 13 NSString *str3_ = [NSString stringWithString:str];//工厂方法 14 15 //按照一定的格式拼接字符串 字符串里面的值由一些变量决定 16 int age = 10; 17 NSString *name = @"Rose"; 18 NSString *str4 = [[[NSString alloc] initWithFormat:@"%@ is %d years old!", name, age] autorelease]; 19 NSString *str4_ = [NSString stringWithFormat:@"%@ is %d years old!", name, age]; 20 NSLog(@"%@", str4); 21 22 //length 判断字符串是否为空 视频1G 23 NSLog(@"%lu -- %@ ",str4.length, str4); 24 25 //查找子字符串 26 NSString *des = @"The NSString class and its mutable subclass"; 27 28 //从index -> 结尾 29 NSString *s1 = [des substringFromIndex:4]; 30 //从开头 -> index 不包含index对应的字符 31 NSString *s2 = [des substringToIndex:5]; 32 33 //NSRange range = {4,8};//c语言的方式 34 //某个范围的子字符串 35 NSRange range = NSMakeRange(4, 8); 36 NSString *s3 = [des substringWithRange:range]; 37 NSLog(@"%@", s3); 38 39 //字符串的比较 @"123456" 40 NSString *passwd = @"123"; 41 if ([passwd isEqualToString:@"123456"]) { 42 NSLog(@"the same"); 43 } else{ 44 NSLog(@"not the same"); 45 } 46 47 NSString *addr = @"a"; 48 NSComparisonResult result = [addr compare:@"b"]; 49 if (result == NSOrderedAscending) { 50 NSLog(@" < "); 51 } else if (result == NSOrderedSame){ 52 NSLog(@" = "); 53 } else{ 54 NSLog(@" > "); 55 } 56 57 //两个对象的比较 58 NSString *ob1 = @"Jack"; 59 NSString *ob2 = @"jacken"; 60 61 Person *p1 = [[Person new] autorelease]; 62 Person *p2 = [[Person new] autorelease]; 63 //注意:p1和p2不是一个对象 只是名字相同而已 64 // p1.name = @"Jack"; 65 // p2.name = @"Jack"; 66 67 //当一个对象被添加到一个集合里面(NSArray NSDictionary NSSet) 68 //这个对象的引用计数+1 69 NSArray *pArray = @[p1]; 70 p1.name = @"Jack"; 71 72 NSLog(@"%@", ((Person *)pArray[0]).name); 73 74 if ([p1 isEqual:pArray[0]]) { 75 NSLog(@"是同一个对象"); 76 } else{ 77 NSLog(@"不是同一个对象"); 78 } 79 80 //前缀和后缀 81 NSString *url = @"http:png//f.hiphotos.baidu.com/image/h%3D300/sign=16e69d830f4f7png8f09f0b9cf349300a83/63d0f703918fa0ece5f167da2a9759ee3d6ddb37.png"; 82 if ([url hasSuffix:@".jpg"]){ 83 NSLog(@"是一个图片"); 84 } 85 86 if ([url hasPrefix:@"http:"]) { 87 NSLog(@"是一个网址"); 88 } 89 90 //是否包含某一个字符串 91 //快来看我的视频 t.dfafaf.v 快给我点赞哦 92 if ([url containsString:@"baidu.com"]) { 93 NSLog(@"是百度的资源"); 94 } 95 96 //后去某个字符串在源字符串里面的具体位置 97 NSRange r = [url rangeOfString:@"png"]; 98 if (r.length == 0){ 99 NSLog(@"不存在"); 100 } else{ 101 NSLog(@"存在:%lu %lu", r.location, r.length); 102 } 103 104 //在一个字符串后面追加一个字符串形成新的字符串 105 // @"abc" @"de" 106 // @"abcde" 107 NSString *hStr = @"abc"; 108 NSString *newStr = [hStr stringByAppendingString:@"de"]; 109 NSString *newStr2 = [hStr stringByAppendingFormat:@"my name is %@", name]; 110 NSLog(@"%@ %@", hStr, newStr); 111 112 //字符串的数字 转化为对应的类型doubleValue floatValue 113 NSString *numStr = @"123"; 114 int num = [numStr intValue]; 115 116 NSString *ntr = [NSString stringWithFormat:@"%d", age];
2.NSMutableString 可变字符串 内容可以被更改
1 //NSMutableString 可变字符串 insert delete change 2 NSMutableString *mStr = [[NSMutableString alloc] initWithCapacity:0]; 3 NSMutableString *mStr_ = [NSMutableString stringWithCapacity:0]; 4 NSLog(@"%@", mStr); 5 6 //字符串的追加 7 [mStr appendString:@"Hello"]; 8 NSLog(@"%@", mStr); 9 10 [mStr appendFormat:@" my name is %@", name]; 11 NSLog(@"%@", mStr); 12 13 //字符串的插入 14 [mStr insertString:@"World " atIndex:6]; 15 NSLog(@"%@", mStr); 16 17 //替换 18 NSRange rg = [mStr rangeOfString:@"Rose"]; 19 [mStr replaceCharactersInRange:rg withString:@"Jack"]; 20 NSLog(@"%@", mStr); 21 22 //删除数据 23 [mStr deleteCharactersInRange: NSMakeRange(0, 12)]; 24 NSLog(@"%@", mStr); 25 26 //重新设置内容 27 [mStr setString:@"abc"]; 28 NSLog(@"%@", mStr); 29 30 /* 31 NSCaseInsensitiveSearch = 1, //不区分大小写比较 32 NSLiteralSearch = 2, //逐字节比较 区分大小写 33 NSBackwardsSearch = 4, //从字符串末尾开始搜索 34 */ 35 [mStr replaceOccurrencesOfString:@"ABC" withString:@"one two three" options:NSLiteralSearch range:NSMakeRange(0, 3)]; 36 NSLog(@"%@", mStr);
二、NSArray
1.注意:1⃣️OC的数组只能存放对象类型 不能存放C语言的基本数据类型
2⃣️OC的数组可以存放多种对象类型的数据【@"dfa", @2, pxd, cc, shuzu】
3⃣️不能存NSNull的数据
2.