OC学习(四)不可变字符串类和可变字符串类

今天系统性的学习了OC中的NSString(字符串)类以及它的子类NSMutableString(可变字符串)类,
下面举例介绍下里面的一部分比较常用方法
一 NSString类的部分方法, NSString 是不可变字符串,所以方法调用时并不是对原字符串进行修改,
而是先建立一个原字符串的副本,然后对副本内容进行修改
1.创建对象两种方式:
(1)便利构造器( + 号方法):stringWithFormat
 NSString *str1 = [NSString stringWithFormat:@"iPhone5"];
 NSLog(@"str1 :%@", str1);
(2)alloc + 初始化方法:initWithFormat
 NSString *str2 = [[NSString alloc] initWithFormat:@"iPhone5s"];
 NSLog(@"str2 :%@", str2);

2.求字符串长度:length
 NSUInteger length = [str1 length];//引用方法1中的str1
 NSLog(@"%lu", length);//控制台输出进行检验

3.获取字符串中的某个字符:characterAtIndex
 unichar charac = [str1 characterAtIndex:5];//引用方法1中的str1
 NSLog(@"%c", charac);//控制台输出进行检验
4.判断是否以指定的字符串开头:hasPrefix
 或者以指定的字符串结尾:hasSuffix
 例如:判断一个字符串是否以http开头,是否以.com结束
 NSString *str3 = [[NSString alloc]initWithFormat:@"http://www.baidu.com"];
 //判断是否以http开头
 BOOL isPrefix = [str3 hasPrefix:@"http"];
 NSLog(@"isPrefix = %d", isPrefix);//控制台输出进行检验(BOOL类型,非0为真)
 //判断是否以.com结尾
 BOOL isSuffix = [str3 hasSuffix:@".com"];
 NSLog(@"isSuffix = %d", isSuffix);//控制台输出进行检验(BOOL类型,非0为真)
5.查找指定字符串的范围:rangeOfString
 NSRange range = [str3 rangeOfString:@"www"];//引用方法4中的str3
 if (range.length == 0) {
     NSLog(@"没有找到对应的字符串");
 } else {
     NSLog(@"%@",NSStringFromRange(range));     
     //NSStringFromRange:将NSRange类型的结构体变量转变成字符串对象,输出检验
 }
6.字符串截取(获取子字符串)
 NSString *str4 = [NSString stringWithFormat:@"Kevinisaman"];
(1)获取给定下标之后的子串,包含指定下标对应的字符:substringFromIndex
 NSString *subString1 = [str4 substringFromIndex:11];
 NSLog(@"subString1: %@", subString1);
(2)获取给定下标之前的子串(从下标为0开始),但是不包含指定下标对应的字符:substringToIndex
 NSString *subString2 = [str4 substringToIndex:5];
 NSLog(@"subString2: %@", subString2);
(3)获取指定范围内的子串:substringWithRange
 NSString *subString3 = [str4 substringWithRange:NSMakeRange(0, 5)];
 //NSMakeRange:创建一个NSRange类型的结构体
 NSLog(@"subString3: %@", subString3);
7.字符串拼接:stringByAppendingString 或者 stringByAppendingFormat
 NSString *str5 = [NSString stringWithFormat:@"lanou"];
(1)lanou 后拼接 henan
 NSString *combine1 = [str5 stringByAppendingString:@"henan"];
 NSLog(@"combine1: %@", combine1);
(2)lanou 后拼接 henan9ban
 NSString *combine2 = [str5 stringByAppendingFormat:@"%@", @"lanouhenan9ban"];
 NSLog(@"combine2: %@", combine2);
8.替换字符串:stringByReplacingOccurrencesOfString 
 或者 stringByReplacingCharactersInRange
 NSString *str6 = [NSString stringWithFormat:@"lanououououisabigcompany"];
(1)将 ou 替换为 uo
 NSString *replace1 = [str6 stringByReplacingOccurrencesOfString:
 @"ou" withString:@"uo"];
 NSLog(@"replace1:%@", replace1);//控制台输出进行检验
(2)将第一个 ou 替换为 uo
 NSString *replace2 = [str6 stringByReplacingCharactersInRange:
 NSMakeRange(3, 2) withString:@"uo"];
 NSLog(@"replace2:%@", replace2);//控制台输出进行检验
9.字符串比较:compare
 NSComparisonResult result = [@"lanou" compare:@"oulan"];
 NSLog(@"%ld", result);//控制台输出进行检验
10.字符串和数值类型转换
(1)@"123", 将字符串转化为整数123.
 int value = [@"   123abc" intValue];
 NSLog(@"%d", value);//控制台输出进行检验
(2)将数字转为字符串对象
 NSString *str = [NSString stringWithFormat:@"%d", 123];

 NSLog(@"%@", str);//控制台输出进行检验

11.字符串转换大小写
(1)将@"lan OU"全部转为大写:uppercaseString
 NSString *stra = [@"lan OU" uppercaseString];
 NSLog(@"%@", stra);
(2)将@"lan OU"全部转为小写:lowercaseString
 NSString *strb = [@"lan OU" lowercaseString];
 NSLog(@"%@", strb);
(3)将@"lan OU"每个单词的首字母大写:capitalizedString
 NSString *strc = [@"lan OU" capitalizedString];
 NSLog(@"%@", strc);

二 NSMutableString 是 NSString 的子类,所以它继承了NSString的全部内容,当然也包括上面
的方法,下面介绍一些它独有的方法,因为 NSMutableString 是可变字符串,所以方法都是在原字符
串的基础上进行修改
 NSMutableString *str = [NSMutableString stringWithFormat:@"lanouhenan"];
1.在原字符串str基础上拼接Frank:appendFormat
 [str appendFormat:@"Frank"];
 [str appendFormat:@"%@",@"Frank"];
2.在原字符串str基础上拼接Frank
 [str appendString:@"Frank"]; 
 NSLog(@"%@", str);//控制台输出进行检验
3.删除原字符串,在原字符串基础上删除henan.
 [str deleteCharactersInRange:NSMakeRange(5, 5)];
 NSLog(@"%@", str);//控制台输出进行检验
4.插入字符串,在原字符串基础上插入henan
 [str insertString:@"henan" atIndex:5];
 NSLog(@"%@", str);//控制台输出进行检验
5.替换字符串,在原字符串基础上将第一个Frank替换成Kevin
 [str replaceCharactersInRange:NSMakeRange(10, 5) withString:@"Kevin"];
 NSLog(@"%@", str);//控制台输出进行检验</span>






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章