OC中字符串类(NSString和NSMutableString)常用方法汇总

一、不可变字符串(NSString)

1、初始化方法

NSString *string1 = [[NSString alloc] initWithFormat@"Hello World!"];

2、便利构造器方法

 NSString *string2 = [NSString stringWithString:@"Hello World!"];

通常不建议这样写,原因是比较繁琐,通常编译器会提示这样写是多余的,推荐写法为:NSString *string4 = @"Hello World!"

3、根据C语言的字符串创建OC字符串对象

char *cString = "Hello World!";

NSString *string3 = [[NSString alloc] initWithCString:cString encoding:NSUTF8StringEncoding];//初始化方法

NSString *string4 = [NSString stringWithCString:cString encoding:NSUTF8StringEncoding];//便利构造器方法

4、根据对应路径文本文档中的内容创建OC字符串对象

NSString *string5 = [[NSString alloc] initWithContentsOfFile:@"对应路径.txt" encoding:NSUTF8StringEncoding error:nil];
NSString *string6 = [NSString stringWithContentsOfFile:@"对应路径.txt" encoding:NSUTF8StringEncoding error:nil];

5、求字符串对象的长度

[string4 length];  也可以这样写: string4.length

6、通过循环遍历的方式打印字符串对象

for (int i = 0; i < string4.length; i++) {
        //characterAtIndex:该方法可用获取方法调用的字符串对象指定下标的字符,下标从0到length -1
        char character = [string4 characterAtIndex:i];
       NSLog(@"%c",character);
    }

7、比较两个字符串对象是否相同(返回值为BOOL类型)

BOOL result = [string2 isEqualToString:string4];

NSLog(@"%@",result ? @"YES" : @"NO");

8、比较两个字符串对象的大小顺序

NSString *string7 = @"abc";
NSString *string8 = @"abd";
NSComparisonResult compareResult = [string7 compare:string8];
NSLog(@"%ld",compareResult);

结果为-1表示调用方法的字符串比参数字符串小,为升序。0表示一致。1表示调用方法的字符串比参数字符串大,为降序。

9、字符串的截取方法

(1)获取从指定下标开始(包含指定下标)到字符串结尾的子字符串。

NSString *subString1 = [string2 substringFromIndex:3];

(2)获取从原字符串起始下标到指定下标(不包含指定下标)的子字符串。

NSString *subString2 = [string2 substringToIndex:2];

(3)根据给定的范围截取字符串

NSRange range = NSMakeRange(1, 2);
NSString *subString3 = [string2 substringWithRange:range];

结构体NSRange包含两个长整型成员,分别为起始下标和长度。如果使用range截取子字符串,则表示从指定下标开始截取指定长度达到子字符串并返回。

10、字符串的拼接方法

(1)拼接指定字符串

NSString *appendString1 = [string2 stringByAppendingString:@"haha"];

(2)拼接指定(格式)的字符串

NSString *appendString2 = [string2 stringByAppendingFormat:@"%d %c %d",3,'+',5];

11、字符串的替换方法

(1)通过指定的参数字符串替换对应范围的字符串

NSString *replaceString = [string2 stringByReplacingCharactersInRange:NSMakeRange(1, 3) withString:@"haha"];

(2)将原字符串中的一段字符串替换为指定的一段字符串

NSString *textString = @"abcdefghijkl";
NSRange replaceRange = [textString rangeOfString:@"efg"];//获取指定字符串在原字符串中的范围。
NSString *resultStr = [textString stringByReplacingCharactersInRange:replaceRange withString:@"abc"];

12、判断字符串是否包含指定字符串

BOOL result1 = [string2 containsString:@"am"];

NSLog(@"%@",result1 ? @"YES" : @"NO");

13、字符串的转换

NSLog(@"%@",string2.uppercaseString);//将字符串全部转换为大写
NSLog(@"%@",string2.lowercaseString);//将字符串全部转换为小写
NSLog(@"%@",string2.capitalizedString);//将字符串首字母全部转换为大写

14、判断指定字符串是否有前缀字符串

BOOL result2 = [string3 hasPrefix:@"http"];
NSLog(@"%@",result2 ? @"YES" : @"NO");

15、判断指定字符串是否有后缀字符串

BOOL result3 = [string3 hasSuffix:@".com"];
NSLog(@"%@",result3 ? @"YES" : @"NO");

二、可变字符串(NSMutableString)

1、根据不可变字符串创建同内容的可变字符串对象。

NSMutableString *mutableStr1 = [NSMutableString stringWithString:string2];

2、可变字符串的拼接

[mutableStr1 appendFormat:@"haha"];

[mutableStr1 appendFormat:@"%d %c %d",3,'+',5];

3、为可变字符串在指定下标插入字符串的方法

[mutableStr1 insertString:@"beijing" atIndex:0];

4、为可变字符串删除指定范围的字符串

NSRange deleteRange = [mutableStr1 rangeOfString:@"beijing"];

[mutableStr1 deleteCharactersInRange:deleteRange];

5、可变字符串提供的用于替换指定范围的字符为给定的字符串的方法。

[mutableStr1 replaceCharactersInRange:NSMakeRange(1, 3) withString:@"hehe"];


总结:不可变字符串不能直接在原有字符串对象中操作,必须重新定义一个新的字符串对象接收结果;而可变字符串可以直接在原字符串中操作,操作后的结果会覆盖原有字符串,并返回新值。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值