在Foundation框架中,提供了NNString类,用于处理字符串对象。学过其他语言比如java的同学都知道java里面有string。其实就是一个道理。
OC语言的字符串必须以@开头,引号当中则是字符串的内容,如@”abc“. 此外,NSString对象,一旦被创建,就不可以在进行修改。(这里指的是不能在原对象上进行修改 创建之后的任何变动 其实都是在它的一个copy对象上进行)
如若需要一个可以更改的字符串对象,需要创建NSMutableString实例。
一、创建对象
NSString *string1=@"这个一个字符串常量";
//创建一个空的字符串 NSString *string2=[[NSString alloc]init];
NSString *string3=[NSString string];
//快速创建一个字符串 NSString *string4=[[NSString alloc]initWithString:@"一个字符串"];
NSString *string5=[NSString stringWithString:@"一个字符串"];
//快速创建一个格式化字符串 int number=1; NSString *string6=[[NSString alloc]initWithFormat:@"%d",number];
NSString *string7=[NSString stringWithFormat:@"%d",number];
if([string6 isEqualToString:string7]){NSLog(@"相同内容");}else{NSLog(@"不同内容"); }if(string8==string9){NSLog(@"同一个对象");
}else{
NSLog(@"不同对象"); }
isEqualToString: 比较的是两个字符串对象里面的值是否相等
==:则比较的是两个对象的地址,也就是引用是否相同。
在java就很好判断 比如说使用了new关键字产生的对象那在内存中就肯定不一样。OC中的alloc也是一个道理。
三、大小写转换和求长度
四、字符串转换为基本数据类型NSString *str = [[NSString alloc]initWithString:@"helloword"];
NSLog(@"upper %@",[str uppercaseString]);
NSLog(@"lower %@",[str lowercaseString]);
NSString *str = [[NSString alloc]initWithString:@"abcdef"];
NSLog(@"str的长度为%d",[str lenth]);
在OC里面貌似没有java那样的自动打包,解包的功能。
所以要想把一个字符串对象转换成一个基本数据对象就只能
NSString *str = [[NSString alloc]initWithString:@"3.14"];
NSLog(@"%.2f",[str floatValue]);
同理:还有intValue....等等与之对应的方法。
当然我们要想将基本数据类型放进NSArray或者说NSDictionary的时候
则需要使用这些打包的方法将基本数据类型包装成为对象
五、常规截取和替换字符串
这里有很多方法 我只说一种我用的最多的方法
NSString* birthday =@"511112199208302415";
NSString* year = [birthday substringWithRange:NSMakeRange(6, 4)];
NSMakeRange(6, 4)代表从location等于6的位置开始 长度为4
=======================================================
NSString* str = [NSString stringWithFormat:@"123abc123abc123"];
NSString* str1 = [str stringByReplacingOccurrencesOfString:@"123" withString:@"000"];
这个的结果就是将str里面的123全部替换成000
至于NSMutableString简单的说一下就好了,我也用的不多。用的时候再去查吧。
//插入字符串 NSMutableString *string19=[[NSMutableString alloc] initWithFormat:@"abc"];[string19 insertString:@"xyz" atIndex:2];
//替换字符串 [string19 replaceCharactersInRange:NSMakeRange(0, 3) withString:@"123"];//删除字符串 [string19 deleteCharactersInRange:NSMakeRange(0, 3)];