OC之字符串(借鉴一)

Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString ,这两个类最大的区别就是NSString 创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString 创建赋值以后可以动态在该字符串上更改内容与长度。

 

1.创建NSString字符串

 

NSString 与 char* 最大的区别就是 NSString是一个objective对象,而char* 是一个字节数组。@+" 字符串 " 这个符号为objective-c NSString 字符串常量的标准用法,char* 创建的时候 无需添加@

C代码  收藏代码
  1. (void)viewDidLoad  
  2.  
  3.     [super viewDidLoad];  
  4.       
  5.     //经典的字符串赋值  
  6.     NSString *str0 @"my name is justcoding !" 
  7.       
  8.     //字符串格式化合并分别包括  
  9.     //NSString*类型 int类型 char*类型   
  10.     NSString *str1 [NSString stringWithFormat:@"我的名字:%@ 我的年龄:%d 我的邮箱:%s",@"justcoding"25,"justcoding@gmail.com"];  
  11.       
  12.     //字符串赋值 参数中只可以写一个字符串 和第一种很像  
  13.     NSString *str2 [NSString stringWithString:@"我是字符串"];  
  14.      
  15.     //字符串转换为utf-8格式 参数为char*类型  
  16.     NSString *str3 [NSString stringWithUTF8String:"字符串转换utf-8格式"];  
  17.       
  18.       
  19.     //字符串合并  
  20.     int  100;  
  21.     char*c "xuanyusong" 
  22.     NSString *temp @"我是临时字符串" 
  23.       
  24.     //在字符串temp的基础继续添加 int 与 char* 组成一个新的字符串  
  25.     NSString *str4 [temp stringByAppendingFormat:@"整型: %d 字符型 :%s",i,c];  
  26.       
  27.     //在字符串temp的基础继续添加temp 并组成一个新的字符串  
  28.     NSString *str5 [temp stringByAppendingString:temp];   
  29.       
  30.     //字符串输出  
  31.     NSLog(@"str0 %@"str0);  
  32.     NSLog(@"str1 %@"str1);  
  33.     NSLog(@"str2 %@"str2);  
  34.     NSLog(@"str3 %@"str3);  
  35.     NSLog(@"str4 %@"str4);  
  36.     NSLog(@"str5 %@"str5);  
  37.       
  38.  

 

2.字符串的遍历 

 

每一个字符串其实是由若干个char字符组成,字符串的遍历实际上就是将字符串中的每一个字符提取出来。

C代码  收藏代码
  1. (void)viewDidLoad  
  2.  
  3.     [super viewDidLoad];  
  4.       
  5.     //经典的字符串赋值  
  6.     NSString *str @"YUSONGMOMO" 
  7.       
  8.     //字符串的长度  
  9.     int count [str length];  
  10.       
  11.     NSLog(@"字符串的长度是%d",count);  
  12.       
  13.     //遍历字符串中的每一个字符  
  14.     for(int =0; count; i++)  
  15.      
  16.         char [str characterAtIndex:i];  
  17.         NSLog(@"字符串第 %d 位为 %c",i,c);  
  18.      
  19.       
  20.  
 

3.字符串的比较 

 

isEqualToString 比较字符串是否完全相等,大小写不一样也无法完全匹配。

hasPrefixe 匹配字符串头

haSuffix     匹配字符串的尾巴

C代码  收藏代码
  1. (void)viewDidLoad  
  2.  
  3.     [super viewDidLoad];  
  4.       
  5.       
  6.     NSString *str0 @"justcoding" 
  7.     NSString *str1 @"justcoding" 
  8.       
  9.       
  10.     //字符串完全相等比较  
  11.     if([str0 isEqualToString:str1])  
  12.      
  13.         NSLog(@"字符串完全相等");  
  14.      
  15.       
  16.     //字符串以开头比较  
  17.     if([str0 hasPrefix:@"just"])  
  18.      
  19.         NSLog(@"字符串str0以just开头");  
  20.      
  21.       
  22.     //字符串以结尾比较  
  23.     if([str1 hasSuffix:@"coding"])  
  24.      
  25.         NSLog(@"str1字符串以coding结尾");  
  26.      
  27.  
 
C代码  收藏代码
  1. //isEqualToString方法      
  2. NSString *astring01 @"This is String!" 
  3. NSString *astring02 @"This is String!" 
  4. BOOL result [astring01 isEqualToString:astring02];  
  5. NSLog(@"result:%d",result);  
 
C代码  收藏代码
  1. //compare方法(comparer返回的三种值)      
  2. NSString *astring01 @"This is String!" 
  3. NSString *astring02 @"This is String!"     
  4. BOOL result [astring01 compare:astring02] NSOrderedSame;      
  5. NSLog(@"result:%d",result);      
  6. //NSOrderedSame 判断两者内容是否相同  
 
C代码  收藏代码
  1. NSString *astring01 @"This is String!" 
  2. NSString *astring02 @"this is String!" 
  3. BOOL result [astring01 compare:astring02] NSOrderedAscending;      
  4. NSLog(@"result:%d",result);  
  5. //NSOrderedAscending 判断两对象值的大小(按字母顺序进行比较,astring02大于astring01为真)  
 
C代码  收藏代码
  1. NSString *astring01 @"this is String!" 
  2. NSString *astring02 @"This is String!" 
  3. BOOL result [astring01 compare:astring02] NSOrderedDescending;      
  4. NSLog(@"result:%d",result);      
  5. //NSOrderedDescending 判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真)  
 
C代码  收藏代码
  1. //不考虑大 小写比较字符串1  
  2. NSString *astring01 @"this is String!" 
  3. NSString *astring02 @"This is String!" 
  4. BOOL result [astring01 caseInsensitiveCompare:astring02] NSOrderedSame;      
  5. NSLog(@"result:%d",result);      
  6. //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为 真)  
 
C代码  收藏代码
  1. //不考虑大小写比较字符串2  
  2. NSString *astring01 @"this is String!" 
  3. NSString *astring02 @"This is String!" 
  4. BOOL result [astring01 compare:astring02 options:NSCaseInsensitiveSearch NSNumericSearch] NSOrderedSame;      
  5. NSLog(@"result:%d",result);      
  6. //NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较,区分大小写 NSNumericSearch:比较字符串的字符个数,而不是字符值。  

 

判断的方法可以利用 NSString 类别中 caseInsensitiveCompare: 所回传 -1、0 或是 1 的数值,判定两个字串之间得排序关系,其程式玛如下。

 

C代码  收藏代码
  1. NSString *string @"0" 
  2.  NSComparisonResult result [string caseInsensitiveCompare:@"A"];  
  3.   
  4.  switch (result)  
  5.  case NSOrderedAscending:  
  6.  NSLog(@"升幂");  
  7.  break 
  8.   
  9.  case NSOrderedSame:  
  10.  NSLog(@"忽略大小写相同的字串");  
  11.  break 
  12.   
  13.  case NSOrderedDescending:  
  14.  NSLog(@"降幂");  
  15.  break 
  16.   
  17.  default 
  18.  NSLog(@"无法判定");  
  19.  break 
  20.   
 

4. 文件字符串操作(读写)

 

C代码  收藏代码
  1. //从文件读取字符串:initWithContentsOfFile方法  
  2. NSString *path @"astring.text" 
  3. NSString *astring [[NSString alloc] initWithContentsOfFile:path];  
  4. NSLog(@"astring:%@",astring);  
  5. [astring release]; //astring=nil;  
 
C代码  收藏代码
  1. //写字符串到文件:writeToFile方法  
  2. NSString *astring [[NSString alloc] initWithString:@"This is String!"];  
  3. NSLog(@"astring:%@",astring);  
  4. NSString *path @"astring.text"     
  5. [astring writeToFile: path atomically: YES];  
  6. [astring release];  //astring=nil;  
 

* ios5 不支持release iOS应用开发:什么是ARC?

 

C代码  收藏代码
  1. //扩展路径  
  2. NSString *Path @"~/NSData.txt" 
  3. NSString *absolutePath [Path stringByExpandingTildeInPath];  
  4. NSLog(@"absolutePath:%@",absolutePath);  
  5. NSLog(@"Path:%@",[absolutePath stringByAbbreviatingWithTildeInPath]);  

 

C代码  收藏代码
  1. //文件扩展名  
  2. NSString *Path @"~/NSData.txt" 
  3. NSLog(@"Extension:%@",[Path pathExtension]);  
 

5. 字符串的截取和大小写

C代码  收藏代码
  1. //改变字符串的大小写  
  2. NSString *string1 @"A String" 
  3. NSString *string2 @"String" 
  4. NSLog(@"string1:%@",[string1 uppercaseString]);//大写  
  5. NSLog(@"string2:%@",[string2 lowercaseString]);//小写  
  6. NSLog(@"string2:%@",[string2 capitalizedString]);//首字母大小  
 
Java代码  收藏代码
  1. (void)viewDidLoad  
  2.  
  3.     [super viewDidLoad];  
  4.       
  5.       
  6.     NSString *str0 @"中文my name is xuanyusong" 
  7.       
  8.     //截取字符串起始点到index为4之间的内容  
  9.     NSString to [str0 substringToIndex:4];  
  10.       
  11.     NSLog(@"to %@",to);  
  12.       
  13.     //截取字符index为2 到结尾之间的内容  
  14.     NSString from [str0 substringFromIndex:2];  
  15.       
  16.     NSLog(@"from %@",from);  
  17.       
  18.       
  19.     //设置截取字符串的范围   
  20.     //从第二位开始,长度为十  
  21.     NSRange rang NSMakeRange(210);  
  22.     NSString strRang [str0 substringWithRange:rang];  
  23.     NSLog(@"rang %@",strRang);  
  24.       
  25.     //设置字符串首字母大写  
  26.     NSLog(@"str0首字母大写:%@",[str0 capitalizedString]);  
  27.     //设置字符串全部内容为大写  
  28.     NSLog(@"str0大写:%@",[str0 uppercaseString]);  
  29.     //设置字符全部内容为小写  
  30.     NSLog(@"str0小写:%@",[str0 lowercaseString]);  
  31.       
  32.  

(未完待续。。。。。。。。。。。)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值