2.OC之NSString数组常用功能简介
来源:互联网 发布:摇钱树软件官网 编辑:程序博客网 时间:2024/05/24 05:16
OC中字符串分为可变字符串和不可变字符串,灵活性要强于C语言;下面介绍一下OC中不可变字符串的常用功能;
<span style="font-size:14px;">#import <Foundation/Foundation.h><span style="color:#cc0000;">/* OC的字符串和c的字符串的差别: c的组成是char,以ASCII存储,以'\0'结束 OC:字符串的对象;基本组成是unichar OC:不可变字符串NSString ;可变字符串NSMutableString */</span>//int main(int argc, const char * argv[])//{// @autoreleasepool// {//// char str[100]="helloworld";//字符串数组//// char *p = "helloworld";//常量字符串// NSString *str2 = @"你好helloworrld";//// unichar ch = [str2 characterAtIndex:0];// NSLog(@"%C",ch);//可以打印OC的字符,可以打印中文字符;characterAtIndex// }// return 0;//}#if 0int main(){ @autoreleasepool { //<span style="color:#ff0000;">1.新建一个字符串,(对象方法,类方法)</span> //把C串改成OC串; NSString *str1 = [[NSString alloc]<span style="color:#ff0000;">initWithUTF8String</span>:"HELLOworld"]; NSLog(@"str1=%@",str1);//%@ 表示打印对象; //<span style="color:#ff0000;">格式化字符串</span> NSString *str2 = [[NSString alloc]<span style="color:#ff0000;">initWithFormat</span>:@"HELLO WORLD %d",1581]; NSLog(@"str2=%@",str2); //<span style="color:#ff0000;">根据其他字符串,创建一个字符串</span> NSString *str3 = [[NSString alloc]<span style="color:#ff0000;">initWithString</span>:str2]; NSLog(@"str3=%@",str3); //<span style="color:#cc0000;">表示类方法;</span> NSString *str4 = [NSString stringWithUTF8String:"hello"]; NSLog(@"str4=%@",str4); NSString *str5 = [NSString stringWithFormat:@"你好%d",2015]; NSLog(@"str5=%@",str5); NSString *str6 = [NSString stringWithString:str5]; NSLog(@"str6=%@",str6); NSString *str7 = @"你好hello";//直接用常量字符串对象赋值; NSLog(@"str7=%@",str7); //<span style="color:#ff0000;">2.字符串的长度:OC字符串的个数,中文字符算一个;</span> NSInteger len = [str7 <span style="color:#ff0000;">length</span>]; //NSInteger-->long 64位系统下8字节 NSLog(@"len=%ld",len);//len=7 //<span style="color:#ff0000;">3.提取字符</span> unichar ch = [str7 <span style="color:#ff0000;">characterAtIndex</span>:1]; NSLog(@"%C",ch);//好 大写c打印的是unichar //<span style="color:#ff0000;">4.判断字符串是否相等</span> NSString *str8 = @"helloa"; NSString *str9 = @"helloA"; BOOL cmp = [str8 <span style="color:#ff0000;">isEqualToString</span>:str9]; if(cmp == YES) { NSLog(@"字符串相等"); } else { NSLog(@"字符串不相等"); } //<span style="color:#ff0000;">5.字符串大小的比较 NSComparisonResult是个枚举类型</span> NSComparisonResult cmprst= [str8 <span style="color:#ff0000;">compare</span>:str9]; if(cmprst == NSOrderedSame) { NSLog(@"str8和str9相等"); } else if(cmprst == NSOrderedAscending) { NSLog(@"str8比str9小"); } else { NSLog(@"str8比str9大"); } //case:大小写lower(小写) upper(大写) Insensitive(麻木不区分大小写) //caseInsensitiveCompare 忽略大小写比较 NSComparisonResult cmprst2 = [str8 <span style="color:#cc0000;">caseInsensitiveCompare</span>:str9]; if(cmprst2 == NSOrderedSame) { NSLog(@"str8和str9相等"); } else if(cmprst2 == NSOrderedAscending) { NSLog(@"str8比str9小"); } else { NSLog(@"str8比str9大"); } //<span style="color:#ff0000;">6.字符串查找</span> NSString *str10 = @"qianfeng is a good trainning school"; NSString *search1 = @"qianfeng"; //在str10中查找search这个字符串的位置 NSRange range = [str10 <span style="color:#ff0000;">rangeOfString</span>:search1]; //<span style="color:#ff0000;">location 表示字符串出现的位置 length 表示长度</span> NSLog(@"qianfeng出现的位置是%lu,长度是%lu",range.location,range.length);//qianfeng出现的位置是0,长度是8 NSString *search2 = @"QF"; range = [str10 rangeOfString:search2]; //<span style="color:#ff0000;">NSNotfoud = max_long 非常大的一个数</span> if(range.location == NSNotFound) { NSLog(@"没有找到"); } else { NSLog(@"qianfeng出现的位置是%lu,长度是%lu",range.location,range.length);//qianfeng出现的位置是0,长度是8 } } return 0;}#endif#if 0134//不会编译.#endif#if 0//字符串的常用操作int main(){ @autoreleasepool { //<span style="color:#ff0000;">1.判断前后缀</span> NSString *str1 = @"www.baidu.com"; if([str1 <span style="color:#ff0000;">hasPrefix</span>:@"www."] == YES) { NSLog(@"有前缀www."); } else { NSLog(@"没有前缀www."); } if([str1 <span style="color:#ff0000;">hasSuffix</span>:@".com"] == YES) { NSLog(@"有后缀.com"); } else { NSLog(@"没有后缀.com"); } //<span style="color:#ff0000;">2.字符串转化数字.字符串类型转成基本数据类型</span> NSString *str2 = @"1234.99"; NSInteger nsi = [str2 <span style="color:#ff0000;">integerValue</span>]; NSLog(@"str2->integer is:%ld",nsi); double d = [str2 doubleValue]; NSLog(@"str2->double is:%lf",d); long long ll = [str2 longLongValue]; NSLog(@"str2->longlong is:%lld",ll); NSString *str3 = @"True";//<span style="color:#ff0000;">第一个字符:"Y","y","t","T",or a digit 1~9 返回1</span>; BOOL b = [str3 <span style="color:#ff0000;">boolValue</span>]; NSLog(@"str2->BOOL is:%d",b);//str2->BOOL is:1 //<span style="color:#cc0000;">3.大小写转化</span> NSString *str4 = @"abc"; NSString *str5 = [str4 <span style="color:#cc0000;">uppercaseString</span>];//创建了新的字符串;有[[alloc]init]过程 NSLog(@"str5=%@,str4=%@",str5,str4);//str5=ABC,str4=abc str4 = @"hello";//str4是NSString常量,指向不可变字符串,指向的内存空间不可以改变,但是指向可以改;就相当于C语言党只能给的 const *p,*p不可以改变,但是p可以改; NSLog(@"str4=%@",str4);//str4=hello NSString *str6 = [str5 lowercaseString]; NSLog(@"str6=%@,str5=%@",str6,str5);//str6=abc,str5=ABC NSString *str7 = [str6 capitalizedString]; NSLog(@"str7=%@,str6=%@",str7,str6);//str7=Abc,str6=abc //<span style="color:#ff0000;">4.子串的提取</span> NSString *str8 = @"起来不愿做奴隶的人们"; NSString *str9 = [str8 <span style="color:#ff0000;">substringFromIndex</span>:1]; NSLog(@"str9=%@",str9);//str9=来不愿做奴隶的人们 str9 = [str8 substringToIndex:3]; NSLog(@"str9=%@",str9);//str9=起来不 一共取三个; NSRange range = {0,5};//第一个参数表示起始位置,第二个参数表示长度; str9 = [str8 substringWithRange:range]; NSLog(@"str9=%@",str9); // //<span style="color:#ff0000;">5.从本地文件读取文件</span>// NSString *path = @"/Users/qianfeng/Desktop/Objective-c/上课笔记/第2天/1.NSString/text";// NSString *str10 = [[NSString alloc]<span style="color:#ff0000;">initWithContentsOfFile</span>:path encoding:NSUTF8StringEncoding error:nil];// NSLog(@"str10=%@",str10);// // NSError *err;//不能创建对象分配空间// str10 = [[NSString alloc]initWithContentsOfFile:path usedEncoding:NSUTF8StringEncoding error:&err];// NSLog(@"str10=%@",str10);// if(err)//err!=nil表示出错,err表示实在调用的时候创建// {// NSLog(@"读文件出错,错误信息是%@",err);// } NSURL *url = [NSURL URLWithString:@"http://www.baidu.com"]; NSString *str10 = [[NSString alloc]initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@",str10); str10 = [NSString stringWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil]; NSLog(@"%@",str10); } return 0;}#endifint main(){ @autoreleasepool { //<span style="color:#ff0000;">1.分割字符串</span> NSString *str = @"hello &i an &happy"; //NSArray OC数组,里面放对象 NSString *demi = @" &";//只有str里面完整的出现 " &"才会分割; NSArray *array = [str <span style="color:#ff0000;">componentsSeparatedByString</span>:demi]; //分离后 components(零件) 就是字符串对象 //array 里面就是字符串对象 NSLog(@"%@",array); //<span style="color:#ff0000;">set集合 是无序的</span> 里面有3个元素 : & ,空格,# <span style="color:#ff0000;"> NSCharacterSet *set = [NSCharacterSet characterSetWithCharactersInString:@"& #"];</span> NSArray *array2=[str componentsSeparatedByCharactersInSet:set]; //在分割的时候就认为在每个字符的2边都存在内容,如果没有就分割出空字符 NSLog(@"%@",array2); NSString *str2 = @"zfz,F,123,FISH,,,"; NSString *str3 = @"zfz,F,456,CAT,benz,lch,1000"; NSCharacterSet *set2 = [NSCharacterSet characterSetWithCharactersInString:@","]; NSArray *array3 = [str2 componentsSeparatedByCharactersInSet:set2]; NSLog(@"array3有%ld个元素,数组如下%@",[array3 count],array3); NSArray *array4 = [str3 componentsSeparatedByCharactersInSet:set2]; NSLog(@"array4有%ld个元素,数组如下%@",[array4 count],array4); NSString *str4 = [array4 componentsJoinedByString:@" "]; NSLog(@"%@",str4); //<span style="color:#cc0000;">字符串追加</span> NSString *str5 = @"hello";//@"123" NSString *str6 = [str5 <span style="color:#ff0000;">stringByAppendingString</span>:@"123"]; NSLog(@"str5=%@,str6=%@",str5,str6);//在str5的基础上构造str6(在另外的内存空间),str5本身没有变, NSLog(@"str6=%p",str6); str6 = [str5 stringByAppendingFormat:@"%d",1519];//str6=hello1519 NSLog(@"str6=%@",str6);//新构造的字符串,指针改变指向; NSLog(@"str6=%p",str6);//str6是不可改变字符串,但是指向可以变,这是一个新建字符串,指针指向新的字符串; //<span style="color:#ff0000;">替换:str6本身没有改变只是利用str6的样子去新建了一个字符串;</span> NSString *str7 = [str6 <span style="color:#ff0000;">stringByReplacingOccurrencesOfString</span>:@"hello" withString:@"你好"]; NSLog(@"str6=%@,str7=%@",str6,str7);//str6=hello1519,str7=你好1519 //<span style="color:#ff0000;">替换的是(0~N)范围内的字符;</span> NSString *str8 = [str6 <span style="color:#ff0000;">stringByReplacingCharactersInRange</span>:NSMakeRange(0, 1) withString:@"超级土豪"]; NSLog(@"str8=%@",str8); }}</span>
0 0
- 2.OC之NSString数组常用功能简介
- OC之NSString简介
- OC NSString 常用方法
- OC学习之NSString
- OC语法之NSString
- OC之【NSString】
- OC之NSString详解
- oc之nsstring
- OC之NSString
- OC类 之 NSString
- OC之NSString
- OC之NSString
- OC基础之NSString
- oc基础之NSString的常用方法(四)
- OC 常用类 --- NSString, NSMutableArray
- OC学习之道:OC对象,字符串和数组的使用方法NSString,NSMutableString ,NSArray,NSMutableArray
- OC之NSString用法详解
- Swift调用OC之NSString
- 卡尔曼(Kalman) 滤波跟踪一个旋转的点程序
- Leetcode: Dungeon Game
- 费马 欧拉定理——SHUoj 1949 Infinite 3
- 探索Android中的Parcel机制(上)
- c++primer之顺序容器(访问元素)
- 2.OC之NSString数组常用功能简介
- python常用web框架性能测试(django,flask,bottle,tornado)
- 1012. 数字分类 (20)
- uva 1262(Password)
- html基本构成元素
- 从AIDL开始谈Android进程间Binder通信机制
- 数字排序-CCF测试往届题
- JavaWeb-ServletContext对象总结
- 编写方法,传入参数为指向Node结构的指针,返回传入数据结构的完整拷贝。