Objective-C里核心的处理字符串的类就是NSString和NSMutableString这两个类,这两个类完成了Objective-C中字符串大部分功能的处理。这两个类的最主要的区别是NSString创建赋值后不能动态修改长度和内容,除非给重新赋值。而NSMutableString类似与链表的,在创建赋值后可以进行修改长度,插入,删除等操作。
NSString创建
1、创建常量字符串
NSString * ConstString = @"我是常量字符串";
2、用类方法创建字符串
NSString *classString = [NSString stringWithFormat:@"我是类方法创建的字符串"];
3、用实例方法创建字符串
NSString *instanceString = [[NSString alloc]initWithString:@"我是实例方法创建的字符串"];
4、通过c字符串创建字符串
char * cString = "我是c字符串";
NSString *cAllocString = [[NSString alloc]initWithCString:cString];
5、通过文件创建字符串
NSString * path = [[NSBundle mainBundle]pathForResource:@"string.txt" ofType:nil];
NSString *fileString = [[NSString alloc]initWithContentsOfFile:path encoding:NSUTF8StringEncoding error:nil];
NSString写入文件
NSString *astring = [[NSString alloc] initWithString:@"This is a String!"];
NSLog(@"astring:%@",astring);
NSString *path = @"astring.text";
[astring writeToFile: path atomically: YES]; //将string写入文件
获取NSString的长度
NSString * bString = [NSString stringWithFormat:@"I am a String."];
NSInteger length = [bString length];
NSLog(@"%@的长度为:%i",bString,length);
组合String
NSString * a1String = [NSString stringWithFormat:@"I am a1String"];
NSString * a2String = [NSString stringWithFormat:@"I am a2String"];
NSString * cString = [a1String stringByAppendingFormat:a2String];
NSString * b1String = [NSString stringWithFormat:@"I am b1String"];
NSString * b2String = [NSString stringWithFormat:@"I am b2String"];
NSString * dString = [b1String stringByAppendingString:b2String];
判断开头结尾
NSMutableString
NSLog(@"\n a: %@",a);
[a
[a
判断字符串是否相等
isEqualToString:
改变大小写:
lowercaseString、uppercaseString
获取字符串存储的数字值:
doubleValue、floatValue、intValue、integerValue、longLongValue、boolValue
字符串比较:(考虑大小写)
NSString *astring01 = @"This is a String!"; NSString *astring02 = @"This is a String!"; BOOL result = [astring01 compare:astring02] == NSOrderedSame; //NSOrderedSame判断两者内容是否相同 NSLog(@"result:%d",result); // NSString *astring01 = @"This is a String!"; NSString *astring02 = @"this is a String!"; BOOL result = [astring01 compare:astring02] == NSOrderedAscending; //NSOrderedAscending判断两对象值的大小(按字母顺序进行比较,astring02大于astring01为真) NSLog(@"result:%d",result); // NSString *astring01 = @"this is a String!"; NSString *astring02 = @"This is a String!"; BOOL result = [astring01 compare:astring02] == NSOrderedDescending; //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真) NSLog(@"result:%d",result);
字符串比较(考虑大小写)
NSString *astring01 = @"this is a String!"; NSString *astring02 = @"This is a String!"; BOOL result = [astring01 caseInsensitiveCompare:astring02] == NSOrderedSame; //NSOrderedDescending判断两对象值的大小(按字母顺序进行比较,astring02小于astring01为真) NSLog(@"result:%d",result); //2. NSString *astring01 = @"this is a String!"; NSString *astring02 = @"This is a String!"; BOOL result = [astring01 compare:astring02 options:NSCaseInsensitiveSearch | NSNumericSearch] == NSOrderedSame; //NSCaseInsensitiveSearch:不区分大小写比较 NSLiteralSearch:进行完全比较,区分大小写 NSNumericSearch:比较字符串的字符个数,而不是字符值。 NSLog(@"result:%d",result);
获取子字符串:
-substringToIndex: 从字符串的开头一直截取到指定的位置,但不包括该位置的字符
-substringFromIndex: 以指定位置开始(包括指定位置的字符),并包括之后的全部字符
-substringWithRange: //按照所给出的位置,长度,任意地从字符串中截取子串
插入字符串:
NSMutableString *String1 = [[NSMutableString alloc] initWithString:@"This is a NSMutableString"]; [String1 insertString:@"Hi! " atIndex:0];