字符串从我接触OC开始就在用它,但是至始至终都没整明白这是个什么东东! 现在学到了这一块儿的知识,经过两天的学习,逐渐的理清楚了一些关于Nsstring和NsMutablestring的一些问题!现在我把它给梳理出来了,供各位大神们知道!
第一个是不可变字符串Nsstring的介绍:
首先是不可变字符串的创建
1 //1、不可变字符串的创建 2 //快速创建 3 NSString *str = @"这是不可变数组的快速创建"; 4 NSLog(@"%@",str); 5 //通过allock格式化字符串创建 6 int a = 100 ; 7 NSString *str1 = [[NSString alloc]initWithFormat:@"%d",a]; 8 NSLog(@"这是通过allock格式化字符串创建:%@",str1); 9 //通过格式化符创建 10 NSString *str2 = [NSString stringWithFormat:@"这是通过格式化符创建的字符串,属于类方法"]; 11 NSLog(@"%@",str2);
第二个是不可变字符串的方法
1 //1、字符串比较 2 3 NSString *str3 = [NSString stringWithFormat:@"abc"]; 4 NSString *str4 = [NSString stringWithFormat:@"abc"]; 5 if ((str3 = str4)) { 6 NSLog(@"%p %p",str4,str3);//比较的字符串地址 7 } 8 //Xcode7.1中的一个bug 输出结果是两个字符串的地址相同 理论上两个字符串的地址是不一样的 9 10 11 //2、字符串内容的比较 12 int c = 100; 13 int c1 = 200; 14 NSString *str5 = [[NSString alloc]initWithFormat:@"%d",c]; 15 NSString *str6 = [[NSString alloc]initWithFormat:@"%d",c1]; 16 BOOL isSame =[str5 isEqualToString: str6 ]; 17 if (isSame) { 18 NSLog(@"这是字符串内容的比较"); 19 } 20 21 //3、比较字符串大小 22 NSString *str7 = [NSString stringWithFormat:@"xiao"]; 23 NSString *str8 = [NSString stringWithFormat:@"qiang"]; 24 NSComparisonResult result = [str7 caseInsensitiveCompare:str8]; 25 if (result ==NSOrderedSame) { 26 NSLog(@"字符串大小比较:一样"); 27 }else if (result == NSOrderedAscending){ 28 NSLog(@"字符串大小比较:升序"); 29 30 }else if (result == NSOrderedDescending) 31 NSLog(@"字符串大小比较:降序"); 32 33 //4、输出字符串长度 34 NSString *str9 = [NSString stringWithFormat:@"亲爱的,我爱你!"]; 35 long len =[str9 length]; 36 NSLog(@"输出字符串长度为:%ld",len); 37 38 //5、大小写转换 39 NSString *str10 = [NSString stringWithFormat:@"i love Keke"]; 40 NSLog(@"全部变成大写字母%@",[str10 uppercaseString]); 41 NSLog(@"全部变成小写字母%@",[str10 lowercaseString]); 42 NSLog(@"首字母大写%@",[str10 capitalizedString]); 43 44 //6、转换为基本数据了类型 45 NSString *str11 = [NSString stringWithFormat:@"15"]; 46 int j = [str11 intValue];//整型转换 47 NSLog(@"由nsstring转换成整型%d",j); 48 NSString *str12 = [NSString stringWithFormat:@"13"]; 49 float k = [str12 floatValue]; 50 NSLog(@"由nsstring转换成浮点型%.2f",k); 51 NSString *str13 = [NSString stringWithFormat:@"10"]; 52 BOOL flag = [str13 boolValue]; 53 NSLog(@"由nsstring转换成BOOL型%d",flag); 54 55 56 //7、字符串分割 57 NSString *str14 = [NSString stringWithFormat:@"i,love,keke"]; 58 NSArray *array = [str14 componentsSeparatedByString:@","]; 59 NSLog(@"字符串的分割%@",array);//以" , "为分割点对字符串分割,在分割点后自动输出换行 60 61 //8、访问指定字符串位置 62 NSString *str15 = [NSString stringWithFormat:@"nishiwodexiaoyaxiaopingguo"]; 63 char car = [str15 characterAtIndex:10]; 64 NSLog(@"访问指定字符串位置%c",car); 65 66 //9、字符串的截取输出 67 NSString *str16 = [NSString stringWithFormat:@"nishiwodexiaoyaxiaopingguo"]; 68 NSString *string16 =[str16 substringFromIndex:10]; 69 NSLog(@"从指定位置开始截取至末尾%@",string16);//从指定位置开始截取,直到字符串末尾 70 71 // 9.2 72 NSString *str17 = [NSString stringWithFormat:@"nishiwodexiaoyaxiaopingguo"]; 73 NSString *string17 = [str17 substringToIndex: 15 ]; 74 NSLog(@"从开头截取至指定位置,不包含该位置%@",string17);//从开头开始截取至指定位置,但是不包括该位置 75 //9.2 76 NSString *str18 = [NSString stringWithFormat:@"nishiwodexiaopingguo"]; 77 NSRange rang = NSMakeRange(0, 5); 78 NSString *str19 = [str18 substringWithRange:rang]; 79 NSLog(@"指定范围截取%@",str19);// 截取指定范围的字符 80 81 82 //10、字符串的拼接 83 //第一种拼接实现方式 84 NSString *str20 =[NSString stringWithFormat:@"Hello"]; 85 NSString *str21 =@"world"; 86 NSString *str22 =[str20 stringByAppendingFormat:@"%@",str21]; 87 NSLog(@"第一种拼接实现方式%@",str22); 88 //第二种拼接实现方式 89 NSString *str23 = [str20 stringByAppendingString:str21]; 90 NSLog(@"第二种拼接实现方式%@",str23); 91 //第三种拼接方式 92 NSString *str24 = [NSString stringWithFormat:@"%@ %@",str20,str21]; 93 NSLog(@"第三种拼接实现方式%@",str24); 94 95 96 //11、查找 97 NSString *str25 = @"123456@qq.com"; 98 NSString *str26 = @"q.com"; 99 NSRange range = [str25 rangeOfString: str26]; 100 if (range.location != NSNotFound ) { 101 NSLog(@"已找到");//查找想对应的字符 102 } 103 104 //12、替换 105 NSString *str27 = [str25 stringByReplacingOccurrencesOfString:@"q.com" withString:@"163.com"]; 106 NSLog(@"替换字符%@",str27); 107
在第十一个方法中,查找字符串 :
1 NSString *str25 = @"123456@qq.com"; 2 NSString *str26 = @"q.com"; 3 NSRange range = [str25 rangeOfString: str26]; 4 if (range.location != NSNotFound ) {//NSNotFound 意为没有找到的意思,两个否定加起来就是肯定的意思 rang.location !=NSNotFound 意为找到了 5 NSLog(@"已找到");//查找想对应的字符 6 }
接下来是可变字符串
首先,同样是字符串的创建
1 可变数组的创建 2 NSMutableString *mstr = [NSMutableString stringWithString:@"这是可变数组的创建"]; 3 NSLog(@"%@",mstr); 4 //似乎只有这一种创建方式 5
第二,既然是可变数组那么肯定有其可变的地方
1 //可变数组的 插入 删除 追加字符串 2 NSMutableString *str28 = [NSMutableString stringWithFormat:@"World"]; 3 [str28 insertString:@" Hello" atIndex:0]; 4 NSLog(@"在可变数组中的指定位置前添加字符%@",str28); 5 6 NSMutableString *str29 = [NSMutableString stringWithFormat:@"My world"]; 7 NSRange rang1 = NSMakeRange(0, 3); 8 [str29 deleteCharactersInRange:rang1]; 9 NSLog(@"删除指定范围的字符串%@",str29); 10 11 NSMutableString *str30 = [NSMutableString stringWithFormat:@"字符串"]; 12 [str30 appendString:@"追加"]; 13 NSLog(@"在字符串后面追加字符%@",str30); 14 }
以上是关于字符串的浅谈,仅仅只是一些残缺不全的知识点整合,有不足之处,求大神指点出来