OC中NSString的使用方法
2015-12-11 18:40
239 查看
OC中NSString的常用方法 1.初始化一个字符串对象 NSString *string1 = @"ibokanwidom"; NSString @string2 = [NSString stringWithString:@"bokanwensi"]; NSString *string4 = [NSString stringWithFormat:@"%d,%f,higuys",5,4.5]; NSString *string5 = @"Rick"; NSString *string6 = @"666"; NSString *string7 = [NSString stringWithFormat:@"%@%@",string5,string6]; NSLog(@"%@",string7); 2.从本地文件中读取字符串 NSString *path1 = @"/Users/ibokan/Desktop/OC_04_02/OC_04_02/213.html"; NSStringEncoding encoding;//NSUTF8StringEncoding = 4, NSError *error; NSString *string8 =[NSString stringWithContentsOfFile:path1 encoding:encoding error:&error]; 3.从网络读取字符串 NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; NSString *string9 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSLog(@"string9 = %@",string9); 4.字符串的操作 NSString *string11 = @"你是逗比么,我都受不了你了"; (1).字符串的属性 长度 length NSUInteger length = [string11 length]; NSLog(@"长度:%lu",length); (2).字符串的截取 NSString *subString1 = [string11 substringToIndex:5];//获取从字符串开头到字符串的 to 的字符串内容,不包括to位置,从0开始算起 NSLog(@"subString1 = %@",subString1); NSString *subString2 = [string11 substringFromIndex:6];//获取从字符串from位置到结尾字符串的内容,包含from位置 NSString *subString3 = [string11 substringWithRange:NSMakeRange(7, 2)]; (3).获取字符串中的字符 NSString *string12 = @"abdasf"; char c= [string12 characterAtIndex:0];//根据字符串中的位置Index 来得到一个字符,注意字符串的索引是从0开始的 (4).字符串的比较,如何判断2个字符串相等呢? if (subString2 == subString3) { //内容和指针都相等,才成立 NSLog(@"subString = subString3"); }else { NSLog(@"不相等"); } (5).浅拷贝 和 深拷贝 浅拷贝是指原对象与拷贝对象共用一份文体,仅仅是引用变量名称不同。 深拷贝是指原对象与拷贝对象不相同,其中任何一个对象的改动都不会对另一个对象造成影响 在字符串中[NSString stringWithString:]方法是用于浅拷贝一个现有的字符串产生一个字符串 NSString *subString4 = [NSString stringWithString:subString3];//浅拷贝 NSString *subString5 = [NSString stringWithFormat:@"%@",subString2]; if (subString2 == subString5) { //内容和指针都相等,才成立 NSLog(@"subString4 = subString3"); }else { NSLog(@"不相等"); } //在实际开发过程中,我们通常只需要比较2个字符串的内容是否相等 if ([subString2 isEqualToString:subString5]) { NSLog(@"subString2 和 subString3 内容相等"); } else { NSLog(@"subString2 和 subString3 内容不相等"); } (6)比较两个字符串的大小 NSString *cmpString1 = @"hehehehehe"; NSString *cmpString2 = @"hahahahaha"; NSComparisonResult result = [cmpString1 compare:cmpString2]; switch (result) { case NSOrderedAscending: NSLog(@"cmpString1 < cmoString2"); break; case NSOrderedSame: NSLog(@"cmpString1 = cmoString2"); break; case NSOrderedDescending: NSLog(@"cmpString1 > cmoString2"); break; default: break; } (6).根据字符串拿到对应的range NSString *string11 = @"你是逗比么,我都受不了你了"; NSRange range1 = [string11 rangeOfString:@"逗比"]; NSLog(@"%@",[NSValue valueWithRange:range1]);//封装range (7).只输出第一个遇到该字符串的位置 及 该字符串的长度 NSRange range2 = [string11 rangeOfString:@"你"]; NSLog(@"%@",[NSValue valueWithRange:range2]); (8).判断字符串中是否有XX前缀 或 XX后缀 NSString *string13 = @"http://www.baidu.com"; if ([string13 hasPrefix:@"http://"]) { NSLog(@"含有该前缀"); } else { NSLog(@"不含有该前缀"); } (9).判断是否为jpg 或者 png格式 NSString *string14 = @"fsfag.jpg"; if ([string14 hasSuffix:@".jpg"]||[string14 hasSuffix:@".png"]) { NSLog(@"含有此后缀"); } else { NSLog(@"不还有次后缀"); } (10).字符串的拼接 NSString *string15 = @"www.baidu.com"; NSString *string16 = [@"http://" stringByAppendingString:string15];//直接把两个字符串连接起来,调用者在前,传进来的字符串在后 NSLog(@"%@",string16); 字符串的其他常用方法 1.字符串的转换函数 NSString *str1 = @"111aaff555"; int a1 = [str1 intValue]; float b1 = [str1 floatValue]; double c1 = [str1 doubleValue]; NSLog(@"%d",a1); 2.字符串大小写转换函数 NSString *str2 = @"aaabb"; NSString *str3 = [str2 uppercaseString];//将字符串全部改写成大写 NSLog(@"%@",str3); NSString *str4 = [str3 lowercaseString]; NSLog(@"%@",str4); NSString *str5 = [str2 capitalizedString]; NSLog(@"%@",str5); 3.字符串的替换函数 NSString *str6 = [str2 stringByReplacingOccurrencesOfString:@"ff" withString:@"dd"]; NSLog(@"%@",str6); NSString *str7 = [str2 stringByReplacingCharactersInRange:NSMakeRange(1, 2) withString:@"cc"]; //将字符串中range范围的内容替换成replacment的内容 NSLog(@"%@",str7); NSString *str8 = @"aa-bb-cc-dd-ee"; NSArray *array = [str8 componentsSeparatedByString:@"-"];//以separator为分隔符,将原字符串的内容进行分割,分割的结果放到一个数组里,作为返回值 NSLog(@"%@",array);
相关文章推荐
- JQuery应用实例——体育馆预约系统的预约功能实现
- 解决jsp引用其他项目时出现的 cannot be resolved to a type错误
- 【三】MongoDB文档的CURD操作
- 64位myeclipse安装SVN插件没法正常工作
- 字符串的一些常用方法
- Android 框架修炼-自己封装双缓存管理框架库
- Apache Storm技术实战之1 -- nimbus启动场景分析
- 体验产品一 | 悦动圈VS咕咚竞品分析报告
- caffe安装验证
- 新增ldpd的例子
- Android SlidingMenu 侧滑菜单
- Deep Learning论文笔记之(一)K-means特征学习
- php学习日记第一棒
- Android学习第五天————ExpandableListView组件通过适配器BaseExpandableListAdapter实现两层列表项
- hdu Rescue
- java读写文件大全(字节流读取得方法)
- finally语句到底是在return之前还是之后执行?
- 应用程序池的配置
- hdu Rescue
- 反编译Android APK