码迷,mamicode.com
首页 > 其他好文 > 详细

可变字符与不可不可变字符串的心得

时间:2015-10-30 14:09:01      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:

字符串从我接触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 可变数组的创建
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     }

以上是关于字符串的浅谈,仅仅只是一些残缺不全的知识点整合,有不足之处,求大神指点出来

可变字符与不可不可变字符串的心得

标签:

原文地址:http://www.cnblogs.com/YinShuZhi/p/4922965.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!