ios 最全的常用字符串操作
1、将NSData / NSString转化
1
2
3
|
NSData *data
= [string dataUsingEncoding: NSUTF8StringEncoding ]; //
将字符串转data NSString *
str = [[ NSString alloc]
initWithData:data]; //
将data转为字符串 |
2、字符串比较
(1)、OC语言,比较两个字符串是否相等
1
2
3
4
5
|
//
isEqualToString方法 NSString *astring01
= @ "This
is a String!" ; NSString *astring02
= @ "This
is a String!" ; BOOL result
= [astring01 isEqualToString:astring02]; NSLog (@ "result:%d" ,result); |
(2)、C语言 比较两个字符串是否相等(一般不用)
1
2
3
4
5
6
7
8
9
|
char string1[]
= "string!" ; char string2[]
= "string!" ; if (strcmp(string1,
string2) == 0) { NSLog (@ "1" ); } |
(3)、compare 比较两个字符串是否相等
1
2
3
4
5
6
|
//compare方法(comparer返回的三种值) NSString *astring01
= @ "This
is a String!" ; NSString *astring02
= @ "This
is a String!" ; BOOL result
= [astring01 compare:astring02] = = NSOrderedSame ; NSLog (@ "result:%d" ,result); //NSOrderedSame判断两者内容是否相同 |
(4)、忽略大小写比较两个字符串
1
2
3
4
5
6
|
//不考虑大小写比较字符串1 NSString *astring01
= @ "this
is a String!" ; NSString *astring02
= @ "This
is a String!" ; BOOL result
= [astring01 caseInsensitiveCompare:astring02] = = NSOrderedSame ; NSLog (@ "result:%d" ,result); //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真) |
(5)、判断一个字符串是否包含另一个字符串
1
2
3
4
5
6
|
//
判断字符串中是否包含“a” NSString *str
= @ "qrewfgfshsgfda" ; if ([str
rangeOfString:@ "a" ].location
== NSNotFound )
{ NSLog (@ "str
中 不包含 a" ); } |
(6)、判断两对象值的大小(按字母顺序升序进行比较,如:a大于b为真)
1
2
3
4
5
6
|
NSString *str
= @ "a" ; NSString *str1
= @ "b" ; if ([str
compare:str1] == NSOrderedAscending )
{ NSLog (@ "%@大于%@" ,str,str1); } |
(7)、判断两对象值的大小(按字母顺序倒序进行比较,如:c大于b为真)
1
2
3
4
5
6
|
NSString *str
= @ "c" ; NSString *str1
= @ "b" ; if ([str
compare:str1] == NSOrderedDescending )
{ NSLog (@ "%@大于%@" ,str,str1); } |
3、字符串转大写/小写/首字母大写
1
2
3
4
5
6
|
NSString *str
= @ "this
is the str" ; [str
uppercaseString]; //
将str转大写 [str
lowercaseString]; //
将str转小写 [str
capitalizedString]; //
将str首字母大写 |
4、字符串截取
(1)、从字符串的开头一直截取到指定的位置,但不包括该位置的字符
1
2
3
4
|
NSString *str
= @ "this
is a str" ; //
从字符串的开头一直截取到指定的位置,但不包括该位置的字符 NSString *str2
= [str substringToIndex:3]; //
截取后str2的值为:thi |
(2)、从指定位置开始(包括指定位置的字符),截取到字符串末尾
1
2
3
4
|
NSString *str
= @ "this
is a str" ; //
以指定位置开始(包括指定位置的字符),截取到字符窜末尾 NSString *str2
= [str substringFromIndex:3]; //
截取后str2的值为:s is a str |
(3)、从指定位置开始(包括指定位置的字符),截取指定长度的字符串
1
2
3
4
5
|
NSString *str
= @ "this
is a str" ; //
从指定位置开始(包括指定位置的字符),截取指定长度的字符串 //
第一个参数表示起始位置,第二个参数表示截取的长度 NSString *str2
= [str substringWithRange: NSMakeRange (1,
3)]; //
截取后str2的值为:his |
5、字符串拼接
(1)、方法一:通过 stringWithFormat 拼接
1
2
3
4
|
NSString *str
= @ "this
is a str" ; //
在str后拼接 append,生成str2 NSString *str2
= [ NSString stringWithFormat:@ "%@
append" ,str]; |
(2)、方法二:通过 stringByAppendingString 拼接
1
2
3
4
|
NSString *str
= @ "this
is a str" ; //
在str后拼接 append,生成str2 NSString *str2
= [str stringByAppendingString:@ "apend" ]; |
(3)、方法三:通过 stringByAppendingFormat拼接
1
2
3
|
NSString *str
= @ "this
is a str" ; //
在str后拼接一个Format好的字符串 NSString *str2
= [str stringByAppendingFormat:@ "apend%@" ,str]; |
(4)、在字符串指定位置插入新字符串
1
2
3
4
5
|
//
在指定位置插入字符串, NSMutableString *str
= [ NSMutableString stringWithString:@ "This
is a str" ]; //
在字符串前面插入Hello,使用此方法必须保证 str 是可变长度的 [str
insertString:@ "Hello" atIndex:0
]; |
6、判断字符串是否以另一个字符串开头/结尾
1
2
3
4
|
NSString *str
= @ "This
is a str" ; [str
hasPrefix:@ "This" ]; //
判断字符串是否以This开头 [str
hasSuffix:@ ".txt" ]; //
判断字符串是否以.txt结尾 |
7、字符串扩展路径
1
2
3
4
5
6
7
|
NSString *Path
= @ "~/Documents/NSData.txt" ; //
此字符串必须为~开头 //
在Path前面扩展沙盒的路径 NSString *absolutePath
= [Path stringByExpandingTildeInPath]; //
去除扩展路径 [absolutePath
stringByAbbreviatingWithTildeInPath]; |
8、获取一个文件的扩展名
1
2
3
|
//
path 为一个文件的完整路径 NSString *Path
= @ "........./NSData.txt" ; NSLog (@ "这个文件的扩展名是:%@" ,[Path
pathExtension]); |
9、按照固定长度生成空字符串
1
2
|
//
按照固定长度生成空字符串 NSString *str
= [ NSMutableString stringWithCapacity:40]; |
10、用指定字符串替换字符串中某指定位置、长度的字符串
1
2
3
4
5
6
7
|
//
用指定字符串替换字符串中的字符串,针对于可变字符串有效 NSMutableString *str
= [ NSMutableString stringWithString:@ "This
is a str" ]; //
用That替换字符串中的This [str
replaceCharactersInRange: NSMakeRange (0,
4) withString:@ "That" ]; NSLog (@ "替换后的str:%@" ,str); |
11、 使用JsonKit 将字符串转成数据字典
1
2
3
|
NSString *response
= [request responseString]; //
这是一个Json格式的字符串 NSData *data
= [response dataUsingEncoding: NSUTF8StringEncoding ]; //
将字符串转data NSDictionary *dic
= [data objectFromJSONData]; //
字符串转字典 |
12、IOS url 编码,http请求遇到汉字的时候,需要转化成UTF-8
1
2
3
|
//
ios中http请求遇到汉字的时候,需要转化成UTF-8,用到的方法是: NSString *
encodingString = [urlString stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding ]; |
13、IOS url 解码,将%3A%2F%2F 格式转为UTF-8
1
2
3
|
//
请求后,返回的数据,如何显示的是这样的格式:%3A%2F%2F,此时需要我们进行UTF-8解码,用到的方法是: NSString *str
= [model.album_name stringByReplacingPercentEscapesUsingEncoding: NSUTF8StringEncoding ]; |
非学无以广才,非志无以成学,小编不才,还请看官多多见谅!
此博客已暂停维护,博主已搬家至 https://dukec.cn/