今天系统性的学习了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);//控制台输出进行检验