在Object C中存在两个类用于操作字符串,NSString和NSMutableString;NSString在赋值之后不能修改其内容和长度,而NSMutableString可以动态的修改字符串内容和长度,其主要区别就和.NET 中的string与StringBuilder之间的区别。
1. 定义NSString字符串
在Object C中NSString是一个对象类型,其有多种定义方式:
NSString *str1=@"令狐聪"; NSString *str2=[NSString stringWithFormat:@"名称: %@ 性别:%s 年龄: %d \n",str1,"男",25]; NSString *str3=[NSString stringWithFormat:@"我的姓名是 令狐聪"]; NSString *str4=[NSString stringWithUTF8String:"我是任盈盈"]; NSString *str5=[str4 stringByAppendingString:str3]; NSString *str6=[str4 stringByAppendingFormat:@" %@",@"笑傲江湖abc"]; NSLog(@"str1=%@",str1); NSLog(@"str2=%@",str2); NSLog(@"str3=%@",str3); NSLog(@"str4=%@",str4); NSLog(@"str5=%@",str5); NSLog(@"str6=%@",str6);
NSString字符串的定义
因为NSString是对象类型,所以在定义的时候要使用 NSString *name 方式,而值需要使用 @+value方式,如@"NSString中文";
也可以使用stringWithFormat全局方法,stringWithUTF8String,stringByAppendingString,stringByAppendingFormat等方法来定义,看到Format我们可以想到.NET中的Format()方法,用于格式化字符串。以上几个方法具体效果如下:
2014-02-13 20:53:13.247 ObjectC10[460:303] str1=令狐聪 2014-02-13 20:53:13.249 ObjectC10[460:303] str2=名称: 令狐聪 性别: 年龄: 25 2014-02-13 20:53:13.251 ObjectC10[460:303] str3=我的姓名是 令狐聪 2014-02-13 20:53:13.252 ObjectC10[460:303] str4=我是任盈盈 2014-02-13 20:53:13.252 ObjectC10[460:303] str5=我是任盈盈我的姓名是 令狐聪 2014-02-13 20:53:13.253 ObjectC10[460:303] str6=我是任盈盈 笑傲江湖abc
2.遍历字符串中的字符
使用- (NSUInteger)length; 方法可以获得字符串的长度,这里要注意中文和英文的问题,在C中char表示一个字节,而一个中文字符占用两个字节位。
可以获得。
int count=[str6 length]; NSLog(@"字符串长度:%d",count); for(int i=0;i<count;i++){ NSString *abc=[str6 substringWithRange:NSMakeRange(i,1)]; NSLog(@"%@",abc); } for(int i=0;i<count;i++){ unichar c=[str6 characterAtIndex:i]; NSLog(@"中文情况=%c",c); } for(int i=0;i<count;i++){ unichar c=[str6 characterAtIndex:i]; NSLog(@"中文情况=%C",c); }
遍历字符串字符
第一种方式NSString *abc=[str6 substringWithRange:NSMakeRange(i,1)];
第二种方式unichar c=[str6 characterAtIndex:i];
这种需要注意中文的问题,第二种方式出现中文%c输出则为乱码,必须使用%C才能正确的输出中文。效果如下
2014-02-13 20:53:13.253 ObjectC10[460:303] 字符串长度:13 2014-02-13 20:53:13.253 ObjectC10[460:303] 我 2014-02-13 20:53:13.254 ObjectC10[460:303] 是 2014-02-13 20:53:13.254 ObjectC10[460:303] 任 2014-02-13 20:53:13.255 ObjectC10[460:303] 盈 2014-02-13 20:53:13.255 ObjectC10[460:303] 盈 2014-02-13 20:53:13.255 ObjectC10[460:303] 2014-02-13 20:53:13.256 ObjectC10[460:303] 笑 2014-02-13 20:53:13.256 ObjectC10[460:303] 傲 2014-02-13 20:53:13.257 ObjectC10[460:303] 江 2014-02-13 20:53:13.257 ObjectC10[460:303] 湖 2014-02-13 20:53:13.258 ObjectC10[460:303] a 2014-02-13 20:53:13.258 ObjectC10[460:303] b 2014-02-13 20:53:13.258 ObjectC10[460:303] c 2014-02-13 20:53:13.259 ObjectC10[460:303] 中文情况=
时间: 2024-10-10 06:23:01