Objective-C精选字符串处理方法
2014-08-04 08:45
274 查看
无论是什么编程语言对字符串的操作是少不了的,对复杂的字符串的分析和操作我们可以用正则表达式来达到我们的目的。简单的字符串处理我们可以借助OC中NSString封装好的字符串处理方法,不过前提是你得了解每个方法如何使用,以下做了一个简单的总结,便于以后使用。以下事例是原创代码,转载请注明出处。
1.字符串的创建
字符串的创建有多种方法,下面的例子中给了常用的几种字符串创建方法(还有好多)
2.获取字符串的长度-(unsignedint)length
3.字符串的比较==比较字符串的指针isEqualToString比较字符串的内容返回值是BOOL类型
以下来利用字符串的浅拷贝和深拷贝来测试上面的两个方法
retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。
copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制,引用计数每次加一。始终返回一个不可变对象。
mutableCopy:始终是深复制,引用计数不改变。始终返回一个可变对象。
代码如下:
运行结果:
4.字符串的比较函数compare,
NSString下面的compare函数的返回值是一个枚举类型NSComparisonResult;NSOrderedAscending=-1,NSOrderedSame=0,NSOrderedDescending=1;对compare进行重载,可以传入option参数,1代表不区分大小写,2代表区分大小写,64代表比较字符串的个数而不是字符串的值。
5.字符串的拼接函数stringByAppendingString:(NSString*)aString;和stringByAppendingFormat:(NSString*)format...;
下面是对上面两个函数的测试:
6.字符串的查找
-(BOOL)hasPrefix:(NSString*)string:判断一个字符串是否是以string开头;
-(BOOL)hasSuffix:(NSString*)string:判断一个字符串是否是以string结尾;
-(NSRange)rangeOfString:(NSString*)string;模式匹配字符串,返回类型是结构体NSRange,结构体NSRange里有两个值都是整型的,location代表子字符串在
原有字符串中的位置,length代表长度。
运行结果:
7.字符串的截取
-(NSString*)substringFromIndex:(NSUInteger)from获取从字符串的开头到字符串结尾的字符串内容,不包含from位置的字符。
-(NSString*)substringToIndex:(NSUInterger)to获取从字符串开头到字符串的to位置的字符串内容,包含to位置的字符;
-(NSString*)substringWithRange:(NSRange)range根据NSRange这个范围来获取字符串;
事例代码如下:
运行结果如下:
8.字符串中的类型转换函数
-(double)doubleValue;把字符串的内容转换为double类型
-(float)floatValue;把相应的字符串转换为float类型
-(int)intValue;把相应的字符串转换为int类型
运行结果:
9.字符串大小写转换函数
-(NSString*)uppercaseString:将字符全改成大写的;
-(NSString*)lowercaseString:将字符全改成小写的;
-(NSString*)capitalizedString:将首字母进行大写;
代码事例:
运行结果:
10.字符串替换函数
-(NSString*)stringByReplacingOccurrencesOfString:(NSString*)targetwithString:(NSString*)replacement;把字符串target转换为replacement
-(NSString*)stringByReplacingCharactersInRange:(NSRange)rangewithString:(NSString*)replacement;把指定范围内的字符串进行替换;
-(NSArray*)componentsSeparatedByString:(NSString*)separator:以字符串中的某个字符进行分割,返回数组对象
测试代码如下
1.字符串的创建
字符串的创建有多种方法,下面的例子中给了常用的几种字符串创建方法(还有好多)
以下来利用字符串的浅拷贝和深拷贝来测试上面的两个方法
retain:始终是浅复制。引用计数每次加一。返回对象是否可变与被复制的对象保持一致。
copy:对于可变对象为深复制,引用计数不改变;对于不可变对象是浅复制,引用计数每次加一。始终返回一个不可变对象。
mutableCopy:始终是深复制,引用计数不改变。始终返回一个可变对象。
代码如下:
NSString下面的compare函数的返回值是一个枚举类型NSComparisonResult;NSOrderedAscending=-1,NSOrderedSame=0,NSOrderedDescending=1;对compare进行重载,可以传入option参数,1代表不区分大小写,2代表区分大小写,64代表比较字符串的个数而不是字符串的值。
5.字符串的拼接函数stringByAppendingString:(NSString*)aString;和stringByAppendingFormat:(NSString*)format...;
下面是对上面两个函数的测试:
-(BOOL)hasPrefix:(NSString*)string:判断一个字符串是否是以string开头;
-(BOOL)hasSuffix:(NSString*)string:判断一个字符串是否是以string结尾;
-(NSRange)rangeOfString:(NSString*)string;模式匹配字符串,返回类型是结构体NSRange,结构体NSRange里有两个值都是整型的,location代表子字符串在
原有字符串中的位置,length代表长度。
-(NSString*)substringFromIndex:(NSUInteger)from获取从字符串的开头到字符串结尾的字符串内容,不包含from位置的字符。
-(NSString*)substringToIndex:(NSUInterger)to获取从字符串开头到字符串的to位置的字符串内容,包含to位置的字符;
-(NSString*)substringWithRange:(NSRange)range根据NSRange这个范围来获取字符串;
事例代码如下:
运行结果如下:
8.字符串中的类型转换函数
-(double)doubleValue;把字符串的内容转换为double类型
-(float)floatValue;把相应的字符串转换为float类型
-(int)intValue;把相应的字符串转换为int类型
-(NSString*)uppercaseString:将字符全改成大写的;
-(NSString*)lowercaseString:将字符全改成小写的;
-(NSString*)capitalizedString:将首字母进行大写;
代码事例:
-(NSString*)stringByReplacingOccurrencesOfString:(NSString*)targetwithString:(NSString*)replacement;把字符串target转换为replacement
-(NSString*)stringByReplacingCharactersInRange:(NSRange)rangewithString:(NSString*)replacement;把指定范围内的字符串进行替换;
-(NSArray*)componentsSeparatedByString:(NSString*)separator:以字符串中的某个字符进行分割,返回数组对象
测试代码如下
相关文章推荐
- Objective-C字符串处理方法大全
- objective - C 下字符串的处理方法
- 【Objective-C】OC中字符串(NSString)的基本概念和常用处理方法
- 【Objective-C】OC中字符串(NSString)的基本概念和常用处理方法
- 化解字符串不能超过8000的方法及交叉表的处理
- C#中字符串处理的一些自定义方法
- 数据连接字符串的处理方法,小小汇总!
- 对字符串的综合处理的几个方法
- 跨平台程序的UNICODE字符串处理方法。
- 化解字符串不能超过8000的方法及交叉表的处理
- 化解字符串不能超过8000的方法及交叉表的处理
- 数据库连接字符串的处理方法!加密解密连接字符串。
- 化解字符串不能超过8000的方法及交叉表的处理
- 化解字符串不能超过8000的方法及交叉表的处理
- 化解字符串不能超过8000的方法及交叉表的处理
- C#中字符串处理的一些自定义方法
- 化解字符串不能超过8000的方法及交叉表的处理
- 字符串的几种处理方法
- C#下字符串处理方法
- C#中字符串处理的一些自定义方法