开发者社区> 技术小美> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

NSString

简介:
+关注继续查看
#import <Foundation/Foundation.h> void stringCreate(){ //C语言中的字符串 //char * s="hello"; NSString *str=@"this is a NSString"; NSLog(@"%@\n",str); NSString *str1=[[[NSString alloc] init] autorelease]; str1=@"this is also a string"; NSString *str2=[[[NSString alloc] initWithString:@"this is a string"] autorelease]; //将C语言的字符串转化成OC语言的字符串 NSString * str3=[[[NSString alloc] initWithUTF8String:"this is a C string"] autorelease]; //静态方法不需要我们管理内存 str3=[NSString stringWithString:@"new str"]; NSString *str4=[[[NSString alloc] initWithFormat:@"年龄:%i,身高:%.2f",20,172.2f] autorelease]; //静态方法不需要我们管理内存 str4=[NSString stringWithFormat:@"xin 年龄:%i,身高:%.2f",20,172.2f]; NSLog(@"%@\n,%@\n,%@\n,%@\n",str1,str2,str3,str4); } void test(){ //从文件中读取数据 NSString *path=@"/Users/dingxiaowei/Desktop/test.txt"; NSError *error; //这个方法已经过期,不能读取中文 // NSString *strText=[NSString stringWithContentsOfFile:path]; //指定字符串编码为UTF8 encoding:NSUTF8StringEncoding 其他的编码格式:kCFStringEncodingGB_18030_2000 NSString *strText=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; if (error==nil) { NSLog(@"文件读取成功:%@",strText); } else{ NSLog(@"文件读失败:%@",error); } // NSString *str5=[NSString stringwith]; } //通过url的方式来读取文件里面的数据 void test4(){ //通过URL来读取本地硬盘上的文件 NSURL *url=[NSURL URLWithString:@"file///Users/dingxiaowei/Desktop/test.txt"]; NSString *str=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSLog(@"文件是:%@",str); //读取远程服务器上文件 NSURL *url2=[NSURL URLWithString:@"http://www.baidu.com"]; NSString *str2=[NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil]; NSLog(@"百度上的文件是:%@",str2); } //测试通过在主函数中调用该方法改变str的值,形参和实参的问题 void test1(NSString **str1){ (*str1)=@"123"; //相当于主函数中str=@"123"; } void test2(int *p){ *p=9;//相当于主函数中a=9 } #pragma mark 字符串的导出 void stringExport(NSString *str){ // NSString *str=@"123"; //如果文件不存在他会帮我们自动创建 NSString *path=@"/Users/dingxiaowei/Desktop/test1.txt"; NSError *error; [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error]; if(error){ NSLog(@"写入失败:%@",[error localizeDescription]); } else{ NSLog(@"写入文件成功"); } } #pragma mark 字符串的取出 void stringImport(){ //从文件中读取数据 NSString *path=@"/Users/dingxiaowei/Desktop/test.txt"; NSError *error; //这个方法已经过期,不能读取中文 // NSString *strText=[NSString stringWithContentsOfFile:path]; //指定字符串编码为UTF8 encoding:NSUTF8StringEncoding 其他的编码格式:kCFStringEncodingGB_18030_2000 NSString *strText=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; if (error==nil) { NSLog(@"文件读取成功:%@",strText); } else{ NSLog(@"文件读失败:%@",error); } // //通过URL来读取本地硬盘上的文件 // NSURL *url=[NSURL URLWithString:@"file///Users/dingxiaowei/Desktop/test.txt"]; // NSError *error; // NSString *str=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error]; // if (error) { // NSLog(@"文件读取失败:%@",error); // } // else{ // NSLog(@"文件读成功:%@",str); // } } #pragma mark - 字符串的常用方法 void stringTest(){ //字符串大小写转化 NSString * strnantong=@"NanTong"; NSString * strhaian=@"haiAn"; NSLog(@"大写:%@",[strnantong uppercaseString]); //转换大写 NSLog(@"小写:%@",[strhaian lowercaseString]); //转化成小写 NSLog(@"首字母大写:%@",[@"aGE" capitalizedString]);//首字母大写 //字符串比较 BOOL *result=[@"abc" isEqualToString:@"ABC"]; NSLog(@"这两个字符串是否相等:%i",result); //YES:1 NO:0 //判断两个字符串的大小 NSComparisonResult result2=[@"abc" compare:@"Abc"];//直接比较,小写字母ASCII码大于大写的 //NSComparisonResult result2=[@"abc" caseInsensitiveCompare:@"Abc"];//忽略大小写比较 if(result2==NSOrderedSame){ NSLog(@"两边相等"); } else if(result2==NSOrderedAscending){ NSLog(@"右边>左边"); } else if (result2==NSOrderedDescending){ NSLog(@"左边>右边"); } //字符串的搜索 NSString*str1=@"123453456.txt"; NSLog(@"是否以12开头:%i",[str1 hasPrefix:@"12"]); //OC中参数都是以:开始的 NSLog(@"是否是txt结尾:%i",[str1 hasSuffix:@".txt"]); //判断一个字符串在另一个字符串的位置 如果没有的话 那location就是一个非常大的数字long_max数 length是0 NSRange range=[str1 rangeOfString:@"345"]; //返回值是一个range类型{location,length} //位置和长度 NSLog(@"%@",NSStringFromRange(range)); //打印这个range NSRange range1=[str1 rangeOfString:@"345" options:NSBackwardsSearch];//从尾部开始搜索字符串 后面再加一个range参数就是指从指定位置开始搜索 NSLog(@"%@",NSStringFromRange(range1)); //字符串的截取 NSString *str2=@"123456789"; NSString *newStr=[str2 substringFromIndex:2]; NSLog(@"新截取的字符串是:%@",newStr); //从头部开始截取,知道索引结束 newStr=[str2 substringToIndex:3]; NSLog(@"从头部开始截取到索引之前的字符串是:%@",newStr); //截取局部 NSRange range2=NSMakeRange(2, 3); newStr=[str2 substringWithRange:range2]; NSLog(@"从头部开始截取到索引之前的字符串是:%@",newStr); //切割字符串 NSString *list=@"1|2|3|4|5"; NSArray *array=[list componentsSeparatedByString:@"|"]; NSLog(@"集合中的元素是:%@",array); NSLog(@"集合中第二个元素是:%@",array[1]);//取出第2个元素 NSString *str3=[array objectAtIndex:2];//另外一种获取第几个对象的方法 NSLog(@"集合中第三个元素是:%@",str3); } #pragma mark - 与路径相关的方法 void pathTest(){ //快速创建一个自动释放的数组 NSMutableArray *components=[NSMutableArray array]; [components addObject:@"chenli"]; [components addObject:@"dingxiaowei"]; [components addObject:@"jiangke"]; //将数组中所有的字符串拼接成一个路径 //不管后面对path怎么操作 path始终不变 NSString不可变 NSString *path=[NSString pathWithComponents:components]; NSLog(@"%@",path); //将路径分解成数组 NSArray *arr=[path pathComponents]; NSLog(@"%@",arr); //判断是否为绝对路径 //就等于判断路径前面是否由反斜杠 如果有则是,如果没由则不是 NSLog(@"%i",[path isAbsolutePath]); NSLog(@"找出最后一个路径:%@",[path lastPathComponent]); NSLog(@"删除最后一节路径:%@",[path stringByDeletingLastPathComponent]); NSLog(@"在最后添加一节路径:%@",[path stringByAppendingPathComponent:@"abc"]); } #pragma mark - 文件拓展名处理 void extension(){ NSString *str=@"test.txt"; NSLog(@"文件的拓展名:%@",[str pathExtension]); NSLog(@"添加拓展名:%@",[str stringByAppendingPathExtension:@"mp3"]); NSLog(@"删除拓展名:%@",[str stringByDeletingPathExtension]); } #pragma mark - 其他 void other(){ NSString *str=@"1"; int a=[str intValue]; NSLog(@"%i",a); //计算字符串的字数,不是计算字符数,一个中文占2-3个字符 NSLog(@"字数:%zi",[@"我是小丁abc" length]); //length返回的是无符号整形数 unichar c=[@"abc" characterAtIndex:0]; //unichar返回类型是unsigned short NSLog(@"第一个字符是:%c",c); //返回C语言中的字符串 const char * c1=[@"abc" UTF8String]; //const表明定义的变量是一个常量,以后不能对他进行操作 NSLog(@"将OC中字符串转化成C中字符串输出:%s",c1);//打印C语言中的字符串用%s } #pragma mark - 主函数 int main(int argc, const char * argv[]) { @autoreleasepool { // //形参和实参的问题 // //测试test1 // NSString *str=@"456"; // test1(&str); // NSLog(@"%@",str); // // // //测试test2 // int a=10; // test2(&a); // NSLog(@"a=%i",a); // // //通过path来读取文件 // test(); // //通过URL来读取 // test4(); //写入文件 stringExport(@"234ding小未"); //取出文件 stringImport(); //测试字符串常用方法 stringTest(); //路径测试 pathTest(); //文件拓展名 extension(); //其他字符串处理 other(); } return 0; }#import <Foundation/Foundation.h> void stringCreate(){ //C语言中的字符串 //char * s="hello"; NSString *str=@"this is a NSString"; NSLog(@"%@\n",str); NSString *str1=[[[NSString alloc] init] autorelease]; str1=@"this is also a string"; NSString *str2=[[[NSString alloc] initWithString:@"this is a string"] autorelease]; //将C语言的字符串转化成OC语言的字符串 NSString * str3=[[[NSString alloc] initWithUTF8String:"this is a C string"] autorelease]; //静态方法不需要我们管理内存 str3=[NSString stringWithString:@"new str"]; NSString *str4=[[[NSString alloc] initWithFormat:@"年龄:%i,身高:%.2f",20,172.2f] autorelease]; //静态方法不需要我们管理内存 str4=[NSString stringWithFormat:@"xin 年龄:%i,身高:%.2f",20,172.2f]; NSLog(@"%@\n,%@\n,%@\n,%@\n",str1,str2,str3,str4); } void test(){ //从文件中读取数据 NSString *path=@"/Users/dingxiaowei/Desktop/test.txt"; NSError *error; //这个方法已经过期,不能读取中文 // NSString *strText=[NSString stringWithContentsOfFile:path]; //指定字符串编码为UTF8 encoding:NSUTF8StringEncoding 其他的编码格式:kCFStringEncodingGB_18030_2000 NSString *strText=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; if (error==nil) { NSLog(@"文件读取成功:%@",strText); } else{ NSLog(@"文件读失败:%@",error); } // NSString *str5=[NSString stringwith]; } //通过url的方式来读取文件里面的数据 void test4(){ //通过URL来读取本地硬盘上的文件 NSURL *url=[NSURL URLWithString:@"file///Users/dingxiaowei/Desktop/test.txt"]; NSString *str=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSLog(@"文件是:%@",str); //读取远程服务器上文件 NSURL *url2=[NSURL URLWithString:@"http://www.baidu.com"]; NSString *str2=[NSString stringWithContentsOfURL:url2 encoding:NSUTF8StringEncoding error:nil]; NSLog(@"百度上的文件是:%@",str2); } //测试通过在主函数中调用该方法改变str的值,形参和实参的问题 void test1(NSString **str1){ (*str1)=@"123"; //相当于主函数中str=@"123"; } void test2(int *p){ *p=9;//相当于主函数中a=9 } #pragma mark 字符串的导出 void stringExport(NSString *str){ // NSString *str=@"123"; //如果文件不存在他会帮我们自动创建 NSString *path=@"/Users/dingxiaowei/Desktop/test1.txt"; NSError *error; [str writeToFile:path atomically:YES encoding:NSUTF8StringEncoding error:&error]; if(error){ NSLog(@"写入失败:%@",[error localizeDescription]); } else{ NSLog(@"写入文件成功"); } } #pragma mark 字符串的取出 void stringImport(){ //从文件中读取数据 NSString *path=@"/Users/dingxiaowei/Desktop/test.txt"; NSError *error; //这个方法已经过期,不能读取中文 // NSString *strText=[NSString stringWithContentsOfFile:path]; //指定字符串编码为UTF8 encoding:NSUTF8StringEncoding 其他的编码格式:kCFStringEncodingGB_18030_2000 NSString *strText=[NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; if (error==nil) { NSLog(@"文件读取成功:%@",strText); } else{ NSLog(@"文件读失败:%@",error); } // //通过URL来读取本地硬盘上的文件 // NSURL *url=[NSURL URLWithString:@"file///Users/dingxiaowei/Desktop/test.txt"]; // NSError *error; // NSString *str=[NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:&error]; // if (error) { // NSLog(@"文件读取失败:%@",error); // } // else{ // NSLog(@"文件读成功:%@",str); // } } #pragma mark - 字符串的常用方法 void stringTest(){ //字符串大小写转化 NSString * strnantong=@"NanTong"; NSString * strhaian=@"haiAn"; NSLog(@"大写:%@",[strnantong uppercaseString]); //转换大写 NSLog(@"小写:%@",[strhaian lowercaseString]); //转化成小写 NSLog(@"首字母大写:%@",[@"aGE" capitalizedString]);//首字母大写 //字符串比较 BOOL *result=[@"abc" isEqualToString:@"ABC"]; NSLog(@"这两个字符串是否相等:%i",result); //YES:1 NO:0 //判断两个字符串的大小 NSComparisonResult result2=[@"abc" compare:@"Abc"];//直接比较,小写字母ASCII码大于大写的 //NSComparisonResult result2=[@"abc" caseInsensitiveCompare:@"Abc"];//忽略大小写比较 if(result2==NSOrderedSame){ NSLog(@"两边相等"); } else if(result2==NSOrderedAscending){ NSLog(@"右边>左边"); } else if (result2==NSOrderedDescending){ NSLog(@"左边>右边"); } //字符串的搜索 NSString*str1=@"123453456.txt"; NSLog(@"是否以12开头:%i",[str1 hasPrefix:@"12"]); //OC中参数都是以:开始的 NSLog(@"是否是txt结尾:%i",[str1 hasSuffix:@".txt"]); //判断一个字符串在另一个字符串的位置 如果没有的话 那location就是一个非常大的数字long_max数 length是0 NSRange range=[str1 rangeOfString:@"345"]; //返回值是一个range类型{location,length} //位置和长度 NSLog(@"%@",NSStringFromRange(range)); //打印这个range NSRange range1=[str1 rangeOfString:@"345" options:NSBackwardsSearch];//从尾部开始搜索字符串 后面再加一个range参数就是指从指定位置开始搜索 NSLog(@"%@",NSStringFromRange(range1)); //字符串的截取 NSString *str2=@"123456789"; NSString *newStr=[str2 substringFromIndex:2]; NSLog(@"新截取的字符串是:%@",newStr); //从头部开始截取,知道索引结束 newStr=[str2 substringToIndex:3]; NSLog(@"从头部开始截取到索引之前的字符串是:%@",newStr); //截取局部 NSRange range2=NSMakeRange(2, 3); newStr=[str2 substringWithRange:range2]; NSLog(@"从头部开始截取到索引之前的字符串是:%@",newStr); //切割字符串 NSString *list=@"1|2|3|4|5"; NSArray *array=[list componentsSeparatedByString:@"|"]; NSLog(@"集合中的元素是:%@",array); NSLog(@"集合中第二个元素是:%@",array[1]);//取出第2个元素 NSString *str3=[array objectAtIndex:2];//另外一种获取第几个对象的方法 NSLog(@"集合中第三个元素是:%@",str3); } #pragma mark - 与路径相关的方法 void pathTest(){ //快速创建一个自动释放的数组 NSMutableArray *components=[NSMutableArray array]; [components addObject:@"chenli"]; [components addObject:@"dingxiaowei"]; [components addObject:@"jiangke"]; //将数组中所有的字符串拼接成一个路径 //不管后面对path怎么操作 path始终不变 NSString不可变 NSString *path=[NSString pathWithComponents:components]; NSLog(@"%@",path); //将路径分解成数组 NSArray *arr=[path pathComponents]; NSLog(@"%@",arr); //判断是否为绝对路径 //就等于判断路径前面是否由反斜杠 如果有则是,如果没由则不是 NSLog(@"%i",[path isAbsolutePath]); NSLog(@"找出最后一个路径:%@",[path lastPathComponent]); NSLog(@"删除最后一节路径:%@",[path stringByDeletingLastPathComponent]); NSLog(@"在最后添加一节路径:%@",[path stringByAppendingPathComponent:@"abc"]); } #pragma mark - 文件拓展名处理 void extension(){ NSString *str=@"test.txt"; NSLog(@"文件的拓展名:%@",[str pathExtension]); NSLog(@"添加拓展名:%@",[str stringByAppendingPathExtension:@"mp3"]); NSLog(@"删除拓展名:%@",[str stringByDeletingPathExtension]); } #pragma mark - 其他 void other(){ NSString *str=@"1"; int a=[str intValue]; NSLog(@"%i",a); //计算字符串的字数,不是计算字符数,一个中文占2-3个字符 NSLog(@"字数:%zi",[@"我是小丁abc" length]); //length返回的是无符号整形数 unichar c=[@"abc" characterAtIndex:0]; //unichar返回类型是unsigned short NSLog(@"第一个字符是:%c",c); //返回C语言中的字符串 const char * c1=[@"abc" UTF8String]; //const表明定义的变量是一个常量,以后不能对他进行操作 NSLog(@"将OC中字符串转化成C中字符串输出:%s",c1);//打印C语言中的字符串用%s } #pragma mark - 主函数 int main(int argc, const char * argv[]) { @autoreleasepool { // //形参和实参的问题 // //测试test1 // NSString *str=@"456"; // test1(&str); // NSLog(@"%@",str); // // // //测试test2 // int a=10; // test2(&a); // NSLog(@"a=%i",a); // // //通过path来读取文件 // test(); // //通过URL来读取 // test4(); //写入文件 stringExport(@"234ding小未"); //取出文件 stringImport(); //测试字符串常用方法 stringTest(); //路径测试 pathTest(); //文件拓展名 extension(); //其他字符串处理 other(); } return 0; }





























本文转自蓬莱仙羽51CTO博客,原文链接:http://blog.51cto.com/dingxiaowei/1366575,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
NSString的boolValue方法甚解
前言 NSString的boolValue之前有使用,但是一直没有真正了解什么时候返回YES(true)或NO(false)。其实,苹果在官方文档中已经写的很清楚,按command + control 点击boolValue进入文档就可以看到: boolValue The Boolean value of the string.
564 0
NSString
NSString Objecti-C的字符串也是一个对象,是NSString类型 创建一个字符串 方式一:(推荐) NSString *name = @"Kongqw"...
376 0
nsstring
<p style="margin-top:0px; margin-bottom:0px; font-size:11px; font-family:'Heiti SC Light'; color:rgb(0,132,0)"> <span style="font-family:Menlo; color:rgb(0,0,0)">    </span><span style="font-fami
733 0
NSString NSMutableString
-------------------------------------------------------------------------NSString------------------------------------------...
511 0
NSDictionary NSMutableDictionary
注: iOS 6 新的快捷初始化写法: NSDictionary: NSDictionary *dic = @{@"键":@"值",@"键1":@"值1"}; NSMutableDictionary: NSMutableDiction...
609 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载