无论是什么编程语言对字符串的操作是少不了的,对复杂的字符串的分析和操作我们可以用正则表达式来达到我们的目的。简单的字符串处理我们可以借助OC中NSString封装好的字符串处理方法,不过前提是你得了解每个方法如何使用,以下做了一个简单的总结,便于以后使用。以下事例是原创代码,转载请注明出处。
1.字符串的创建
字符串的创建有多种方法,下面的例子中给了常用的几种字符串创建方法(还有好多)
1 2 3 4 5 6 |
//字符串创建工厂 NSString *str1 = [NSString stringWithFormat:@"%d, %d",1,2]; NSString *str2 = [NSString stringWithString:@"hello"]; NSString *str3 = [NSString stringWithCString:"aaa" encoding:NSUTF8StringEncoding]; //普通方法 NSString *str4 = @"hello"; |
2.获取字符串的长度 -(unsigned int) length
1 2 |
NSString *str = @"Hello"; NSUInteger leng= [ str length]; |
3.字符串的比较 == 比较字符串的指针 isEqualToString 比较字符串的内容返回值是BOOL类型
以下来利用字符串的浅拷贝和深拷贝来测试上面的两个方法
retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。
copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制, 引用计数每次加一。始终返回一个不可变对象。
mutableCopy:始终是深复制,引用计数不改变。始终返回一个可变对象。
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
NSString *string1 = @"hello"; NSString *string2 = [string1 mutableCopy]; NSString *string3 = [string1 copy]; //NSLog(string2); //NSLog(string3); //比较指针 if (string1 == string2) { NSLog(@"指针相同"); } else { NSLog(@"string1通过深拷贝给string2所以指针不同"); } //比较指针 if (string1 == string3) { NSLog(@"string1通过浅拷贝给string3所以指针相同"); } else { NSLog(@"string1通过深拷贝给string3所以指针不同"); } //比较内容 if ([string1 isEqualToString:string2] == YES) { NSLog(@"string1 和 String2的内容相同"); } else { NSLog(@"string1 和 String2的内容不同"); } |
运行结果:
1 2 3 |
2014-07-30 20:12:07.796 HelloOC[2073:303] string1通过深拷贝给string2所以指针不同 2014-07-30 20:12:07.796 HelloOC[2073:303] string1通过浅拷贝给string3所以指针相同 2014-07-30 20:12:07.797 HelloOC[2073:303] string1 和 String2的内容相同 |
4.字符串的比较函数compare,
NSString下面的compare函数的返回值是一个枚举类型NSComparisonResult; NSOrderedAscending=-1, NSOrderedSame=0,NSOrderedDescending = 1 ; 对compare进行重载,可以传入option参数, 1 代表不区分大小写,2代表区分大小写,64代表比较字符串的个数而不是字符串的值。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
//字符串比较函数compare NSString *strCompare1 = @"abcde"; NSString *strCompare2 = @"bcdef"; //compare的返回类型是NSComparisonResult NSComparisonResult result =ۮ的。简单的字符串处理我们可以借助OC中NSString封装好的字符串处理方法,不过前提是你得了解每个方法如何使用,以下做了一个简单的总结,便于以后使用。以下事例是原创代码,转载请注明出处。
1.字符串的创建 字符串的创建有多种方法,下面的例子中给了常用的几种字符串创建方法(还有好多)
2.获取字符串的长度 -(unsigned int) length
3.字符串的比较 == 比较字符串的指针 isEqualToString 比较字符串的内容返回值是BOOL类型 以下来利用字符串的浅拷贝和深拷贝来测试上面的两个方法 retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。 copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制, 引用计数每次加一。始终返回一个不可变对象。 mutableCopy:始终是深复制,引用计数不改变。始终返回一个可变对象。 代码如下:
运行结果:
4.字符串的比较函数compare, NSString下面的compare函数的返回值是一个枚举类型NSComparisonResult; NSOrderedAscending=-1, NSOrderedSame=0,NSOrderedDescending = 1 ; 对compare进行重载,可以传入option参数, 1 代表不区分大小写,2代表区分大小写,64代表比较字符串的个数而不是字符串的值。
|