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://www.cnblogs.com/duke-cui/p/11099150.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值