不可变字符串 NSString与可变字符串 NSMutableString

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不可变字符串 NSString与可变字符串 NSMutableString相关的知识,希望对你有一定的参考价值。

不可变字符串

//创建一个字符串对象

    NSString *string = [[NSString alloc] initWithFormat:@"zhong huang -"];

    NSString *string1 = [[NSString alloc] initWithFormat:@"zhonger‘s  age is %d", 33];

    NSString *string2 = [[NSString alloc] initWithFormat:@"zhonger‘s gender is %@",@"不祥"];

    NSString *string3 = @"i love ios";

//获取字符串长度length

    unsigned long length = [string2 length];

//获取字符串中的字符

    unichar character = [string2 characterAtIndex:21];    

 //比较两个字符串的内容  是内容

    BOOL isEqual = [string3 isEqualToString:string4];

//字符串比较

    NSComparisonResult result = [string3 compare:string4];

//截取字符串:

    //1.substringFromIndex:

    //从某一个下标开始一直截取到最后

    NSString *newString = [string substringFromIndex:5];

    //2.substringToIndex:

    //从头开始截取,到某一下标结束

    NSString *newString1 = [string substringToIndex:5];

    //3.substringWithRange:

    //从某个开始截取几个字符,从第二个开始截取3个。

    // NSMakeRange  从某个下标开始 选择几个位置

    //NSMakeRange(<#NSUInteger loc#>, <#NSUInteger len#>)

    NSString *newString2 = [string substringWithRange:NSMakeRange(2, 3)];

 //拼接字符串  stringByAppendingFormat

    NSString *newStr = [string stringByAppendingFormat:@"之力"];//也可以打印占位符

    NSString *newStr1 = [string stringByAppendingFormat:@"之力 %d", 2];

    NSString *newStr2 = [string stringByAppendingString:@"之力 2"];

    NSString *newStr3 = [string stringByAppendingString:string1 ];  //不可以打印占位符。。。

 //替换字符串。

    NSString *news = [string2 stringByReplacingCharactersInRange:NSMakeRange(20, 2) withString:@"雌雄同体"];

 //当不知道所替换内部的具体位置时采用、、如有多个,则全部替换

    NSString*news1 = [string2 stringByReplacingOccurrencesOfString:@"不祥" withString:@"雌雄同体"];

 //字符串转换为int类型

    NSString *numberStr = @"123";

    int number = [numberStr intValue];    

 //字符串   大写,小写,首字母大写

    NSString *resultStr = [string uppercaseString];

    NSString *resultStr1 = [string lowercaseString];

    NSString *resultStr2 = [string capitalizedString];    

 //判断字符串是否以指定方式开头,或者以什么指定方式结尾。

    BOOL isTrue = [string hasPrefix:@"zh"];

    BOOL isTrue1 = [string hasSuffix:@"z"];

 

可变字符串

//创建可变字符串,容量给0,系统会根据可变字符串存放的内容,自动申请空间。

    NSMutableString *mStr = [[NSMutableString alloc] initWithCapacity:0];

 //设置内容

    [mStr setString:@"洪荒之力,已无法阻挡,麒麟逼"];

 //拼接

    [mStr appendFormat:@",太可啪了!"];

 //删除某一范围内的字符

    [mStr deleteCharactersInRange:NSMakeRange(6, 2)];

//从某个下标开始,插入一个指定的字符串

    [mStr insertString:@"中二" atIndex:2];

 //替换某一范围内的字符串

    [mStr replaceCharactersInRange:NSMakeRange(8, 2) withString:@"吞噬"];

    NSLog(@"mStr is %@",mStr);

    

注意,字符串注意的是方法的使用,所以一定要记得方法名,如果不知,可以翻阅api文档。api文档中有所有方法的详细介绍。

以上是关于不可变字符串 NSString与可变字符串 NSMutableString的主要内容,如果未能解决你的问题,请参考以下文章

Foundation框架中的不可变字符串:NSString

NSM 可变数据。为啥保留计数 1 比我预期的要高?

如何检查NSString格式是否包含与可变参数相同数量的说明符?

iOSDay13之NSString

iosOC不可变字典和可变字典

OC基础--常用类的初步介绍与简单实用之NSString