首页 > 代码库 > Foundation 框架 NSString常用总结
Foundation 框架 NSString常用总结
iOS开发过程中,从始至终都会和NSString打交道,在此总结一下NSString的常用的方法,在以后的学习过程中用到的方法也会继续添加
NSString类是Foundation框架中得不可变字符串,当NSString创建完成后,字符串的内容不可更改,与之对应的是NSMutableString类
一、NSString对象的创建
1.使用类方法(stringWithFormat:)进行字符串创建,此方法可以动态的构建字符串,并且能够给字符串传递参数(推荐)
1 NSString* str = [NSString stringWithFormat:@"曾经我打听过,你最近的生活 %@", @"love you"];2 NSLog(@"%@", str);
2.其他创建方法
1 // 把C字符串转成OC的字符串对象 2 char* p = "I love beijing"; 3 NSString* testStr = [[NSString alloc] initWithFormat:@"%s",p ]; 4 NSLog(@"testString = %@",testStr); 5 6 // 把OC字符串对象转成C字符串 7 const char* newP = [testStr UTF8String]; 8 NSLog(@"newp = %s",newP); 9 10 // 与格式控制字符串构建对象的实例方法对应的类方法11 // 使用(Foundation框架里的)类方法创建的对象,由自动释放池管理内存12 NSString* str2 = [NSString stringWithFormat:@"This is a OC sting %d",109];13 NSLog(@"str2 = %@",str2);14 //=============================================15 // 使用一个现有的字符串对象构建一个新的字符串对象16 NSString* str = @"I‘m a oc string";17 NSString* str3 = [[NSString alloc] initWithString:str];18 NSLog(@"str3 = %@",str3);19 // 与之对应的类方法20 NSString* str4 = [NSString stringWithString:str];21 NSLog(@"str4 = %@",str4);22 23 //==============================================24 // 使用一个C字符串构建一个OC的字符串对象25 NSString* str5 = [[NSString alloc] initWithUTF8String:"This is a c String"];26 NSLog(@"str5 = %@",str5);27 // 与之对应的类方法28 NSString* str6 = [NSString stringWithUTF8String:"This is a c String"];29 NSLog(@"str6 = %@",str6);30 31 //==============================================32 // 使用文件内容构建一个字符串对象33 34 NSString* filePath = @"/Users/qianfeng/Desktop/test.txt";35 /* 36 第一个参数:读取的文件的路径37 第二个参数:指定编码集为NSUTF8String38 第三个参数:用于存放读取文件过程中的错误信息39 */40 NSError* error = nil;41 NSString* str7 = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil];42 NSLog(@"str7 = %@",str7);
二、NSString常用操作
1 //获取字符串长度(length) 2 NSString* str = [NSString stringWithFormat:@"曾经我打听过,你最近的生活 %@", @"love you"]; 3 NSUInteger lenth = [str length]; 4 NSLog(@"%ld", lenth); 5 NSLog(@"%@", str); 6 //NSRange 7 /* 8 NSRange在Foundation框架中定义如下 9 typedef struct _NSRange {10 NSUInteger location; //表示位置11 NSUInteger length; //长度12 } NSRange;13 */14 NSString* str2 = @"忙碌工作之余是否有运动?";15 NSString* subString = @"忙碌";16 //查找子串(从0开始)17 NSRange range = [str2 rangeOfString: subString];18 //打印框架内结构体的方法19 NSLog(@"%@", NSStringFromRange(range));20 //使用框架创建range21 NSRange newRange = NSMakeRange(5, 3);22 NSString* newTemp = [str2 substringWithRange: newRange];23 NSLog(@"%@", newTemp);24 //判断是否在父串中找到子串25 if (range.location == NSNotFound) {26 NSLog(@"Can‘t fount");27 }else{28 NSLog(@"Got it!");29 }30 //字符串比较(大小)31 NSString* strA = @"chengDu";32 NSString* strB = @"chongQing";33 //compare:方法的返回值类型为NSComparisonResult(枚举值),其中34 //NSOrderedSame表示相等 NSOrderedAscending表示升序(小于)35 //NSOrderedDescending 表示降序(大于)36 if ([strA compare: strB] == NSOrderedSame) {37 NSLog(@"相等");38 }else if([strA compare: strB] == NSOrderedAscending){39 NSLog(@"小于");40 }else{41 NSLog(@"大于");42 }43 //字符串比较(是否相等)44 BOOL isEqule = [strA isEqualToString: strB];45 NSLog(@"The result is : %d", isEqule);46 47 //判断字符串前后缀48 NSString *fileString = @"/Users/student/DeskTop/file.txt";49 //判断前缀(hasPrefix:)方法50 BOOL isPrefix = [fileString hasPrefix:@"/Users"];51 //判断后缀 (hasSuffix:)方法52 BOOL isSuffix = [fileString hasSuffix: @".txt"];53 NSLog(@"isPrefix = %d, isSuffix = %d", isPrefix, isSuffix);54 //字符串转换为数字55 /*56 框架提供的字符串转换的方法如下:57 - (double)doubleValue;58 - (float)floatValue;59 - (int)intValue;60 - (NSInteger)integerValue NS_AVAILABLE(10_5, 2_0);61 - (long long)longLongValue NS_AVAILABLE(10_5, 2_0);62 - (BOOL)boolValue NS_AVAILABLE(10_5, 2_0);63 */64 NSString* strToNum = @"12345.234";65 int result = [strToNum intValue];66 NSLog(@"result = %d", result);
Foundation 框架 NSString常用总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。