不可变字符串NSString

Posted

tags:

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

                

/*字符串的常用方法*/

 

//1.通常用来把一些基本数据类型和字符串进行拼接

int a = 9527;
float b = 9527.0;
NSString *string = [NSString stringWithFormat:@"%d%.1f",a,b];
NSLog(@"%@",string);//95279527.0

 

//2.字符串的长度(空格也会计算在内)

NSString *string = @"今晚打老虎";
//NSLog(@"%lu",[string length]);
NSLog(@"%lu",string.length);//5
NSString *string = @"今 晚 打 老 虎";
NSLog(@"%lu",string.length);//9

 

//3.取子串

//3.1取后面 index(index是下标的意思)开始取到最后(包含index)

NSString *string = @"今晚打老虎";
NSString *string2 = [string substringFromIndex:2];//“今”下标为0,“打”下标为2,从下标为2的“打”开始取到最后面,即sting2 = @“打老虎”
NSLog(@"%@",string2);//打老虎

//3.2取前面 从 index为0开始取,到index止(不包含index

NSString *string = @"今晚打老虎";
NSString *string2 = [string substringToIndex:2];//从下标为0的“今”开始取,到下标为2的“打”的前一个(“晚”)止,即sting2 = @“今晚”
NSLog(@"%@",string2);//今晚

//3.3取中间 从哪个位置开始取,取多长

//创建一个NSRange

NSString *string = @"今晚打老虎";
NSRange rang = NSMakeRange(2, 2);//从下标为2开始取,取两个(rang为结构体不需加*)
NSString *string2 = [string substringWithRange:rang];
NSLog(@"%@",string2);//打老

 

//4.判断一个字符串是不是以...开头或者以...结尾

NSString *string = @"今晚打老虎";
//判断是不是以“今”开头
if ([string hasPrefix:@""]) {
    NSLog(@"");//
}else{
    NSLog(@"不是");
}
//判断是不是以“老”结尾
if ([string hasSuffix:@""]) {
    NSLog(@"");
}else{
    NSLog(@"不是");//不是
}

 

 //5.字符串的拼接

NSString *string = @"赵日天";
NSString *string2 = @"今晚打老虎";
NSString *string3 = [string stringByAppendingString:string2];
NSLog(@"%@",string3);//赵日天今晚打老虎

 

//6.判断两个字符串是否相等

NSString *string = @"赵日天";
NSString *string2 = @"叶良辰";
if ([string isEqualToString:string2]) {
      NSLog(@"相等");
}else{
      NSLog(@"不相等");//不相等
}

 

//7.字符串的替换

NSString *string = @"我赵日天不服";
NSString *string2 = [string stringByReplacingOccurrencesOfString:@"不服" withString:@"服了"];//把“不服”替换成"服了"
NSLog(@"%@",string2);//我赵日天服了

 

//8.判断一个字符串中是否包含...

NSString *string = @"我赵日天不服";
NSRange range = [string rangeOfString:@""];
if (range.length > 0) {
    NSLog(@"包含");//包含
}else{
    NSLog(@"不包含");
}

 

//9.字符串的分割

NSString *string = @"MDZZ";
NSArray *array = [string componentsSeparatedByString:@"D"];
NSLog(@"%@",array);//(M,ZZ)
NSLog(@"%@",array[0]);//M
NSLog(@"%@",array[1]);//ZZ

//总结:

//NSString是不可变字符串,方法都有返回值,返回值往往是字符串,也就是新生成的字符串
/*
         字符串常用方法
         求长度        length
         判断开头结尾   hasPrefix hasSuffix
         拼接         stringByAppendingString
         取子串        substring...
         判断是否相等   isEqualToString
         截取 分割     componentsSeparatedByString
         替换          stringByReplacingOccurrencesOfString
         判断是否包含  rangeOfString
*/
       

 

 

 

 

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

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

iOSDay13之NSString

针对NSString的copy修饰前后,引用计数的变化

iosOC不可变字典和可变字典

为啥说 NSString 的可变副本等于原始不可变副本?

iOS不可变字符串的所有操作