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

来源:互联网 发布:家庭健身器材 知乎 编辑:程序博客网 时间:2024/06/05 14:02
今天系统性的学习了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>




0 0
原创粉丝点击