Objective-C 中核心处理字符串的类是 NSString 与 NSMutableString,这两个类最大的区别就是NSString创建赋值以后该字符串的内容与长度不能在动态的更改,除非重新给这个字符串赋值。而NSMutableString创建赋值以后可以动态在该字符串上更改内容与长度。
1.创建经典的NSString字符串
NSString 与 char* 最大的区别就是 NSString是一个objective对象,而char* 是一个字节数组。@+ ” 字符串 ” 这个符号为objective-c NSString 字符串常量的标准用法,char* 创建的时候 无需添加@
06 | NSString *str0 = @ "我是雨松MOMO" ; |
10 | NSString *str1 = [NSString stringWithFormat:@ "我的名字:%@ 我的年龄:%d 我的邮箱:%s" ,@ "雨松MOMO" , 25, "xuanyusong@gmail.com" ]; |
13 | NSString *str2 = [NSString stringWithString:@ "我是字符串" ]; |
16 | NSString *str3 = [NSString stringWithUTF8String: "字符串转换utf-8格式" ]; |
20 | char *c = "xuanyusong" ; |
21 | NSString *temp = @ "我是临时字符串" ; |
24 | NSString *str4 = [temp stringByAppendingFormat:@ "整型: %d 字符型 :%s" ,i,c]; |
27 | NSString *str5 = [temp stringByAppendingString:temp]; |
30 | NSLog(@ "str0 = %@" , str0); |
31 | NSLog(@ "str1 = %@" , str1); |
32 | NSLog(@ "str2 = %@" , str2); |
33 | NSLog(@ "str3 = %@" , str3); |
34 | NSLog(@ "str4 = %@" , str4); |
35 | NSLog(@ "str5 = %@" , str5); |
2.字符串的遍历
每一个字符串其实是由若干个char字符组成,字符串的遍历实际上就是将字符串中的每一个字符提取出来。
06 | NSString *str = @ "YUSONGMOMO" ; |
09 | int count = [str length]; |
11 | NSLog(@ "字符串的长度是%d" ,count); |
14 | for ( int i =0; i < count; i++) |
16 | char c = [str characterAtIndex:i]; |
17 | NSLog(@ "字符串第 %d 位为 %c" ,i,c); |
3.字符串的比较
isEqualToString 比较字符串是否完全相等,大小写不一样也无法完全匹配。
hasPrefixe 匹配字符串头
haSuffix 匹配字符串的尾巴
05 | NSString *str0 = @ "雨松MOMO" ; |
06 | NSString *str1 = @ "雨松MOMO" ; |
09 | if ([str0 isEqualToString:str1]) |
15 | if ([str0 hasPrefix:@ "雨松" ]) |
17 | NSLog(@ "字符串str0以雨松开头" ); |
21 | if ([str1 hasSuffix:@ "MOMO" ]) |
23 | NSLog(@ "str1字符串以MOMO结尾" ); |
4.字符串的截取与大小写改变
05 | NSString *str0 = @ "中文my name is xuanyusong" ; |
08 | NSString * to = [str0 substringToIndex:4]; |
13 | NSString * from = [str0 substringFromIndex:2]; |
15 | NSLog(@ "from = %@" ,from); |
19 | NSRange rang = NSMakeRange(2, 10); |
20 | NSString * strRang = [str0 substringWithRange:rang]; |
21 | NSLog(@ "rang = %@" ,strRang); |
24 | NSLog(@ "str0首字母大写:%@" ,[str0 capitalizedString]); |
26 | NSLog(@ "str0大写:%@" ,[str0 uppercaseString]); |
28 | NSLog(@ "str0小写:%@" ,[str0 lowercaseString]); |
5.搜索字符串与替换字符串
05 | NSString *str0 = @ "中文my name is xuanyusong" ; |
06 | NSString *temp = @ "is" ; |
07 | NSRange rang = [str0 rangeOfString:temp]; |
09 | NSLog(@ "搜索的字符串在str0中起始点的index 为 %d" , rang.location); |
10 | NSLog(@ "搜索的字符串在str0中结束点的index 为 %d" , rang.location + rang.length); |
13 | NSString *str = [str0 stringByReplacingCharactersInRange:rang withString:@ "哇咔咔卡卡咔" ]; |
14 | NSLog(@ "替换后字符串为%@" , str); |
17 | str = [str0 stringByReplacingOccurrencesOfString :@ " " withString:@ "@" ]; |
18 | NSLog(@ "替换后字符串为%@" , str); |
拓展:使用下面这个方法整体替换字符串还可以设置替换的区域。
stringByReplacingOccurrencesOfString:(NSString *)withString:(NSString *) options:(NSStringCompareOptions) range:(NSRange)
这一篇主要介绍NSString 类的使用 下面篇详细介绍NSMutableString类,大小盆友们要支持MOMO喔 嘻嘻~~~