NSString、NSMutableString

来源:互联网 发布:aegisub for mac教程 编辑:程序博客网 时间:2024/05/04 05:32

Objective-C里核心的处理字符串的类就是NSString和NSMutableString这两个类,这两个类完成了Objective-C中字符串大部分功能的处理。这两个类的最主要的区别是NSString创建赋值后不能动态修改长度和内容,除非给重新赋值。而NSMutableString类似与链表的,在创建赋值后可以进行修改长度,插入,删除等操作。

NSString创建

1、创建常量字符串

NSString * ConstString = @"我是常量字符串";  

2、用类方法创建字符串

NSString *classString = [NSStringstringWithFormat:@"我是类方法创建的字符串"];

3、用实例方法创建字符串

NSString *instanceString = [[NSStringalloc]initWithString:@"我是实例方法创建的字符串"];

4、通过c字符串创建字符串

char * cString = "我是c字符串";

    NSString *cAllocString = [[NSStringalloc]initWithCString:cString];

5、通过文件创建字符串

NSString * path = [[NSBundlemainBundle]pathForResource:@"string.txt"ofType:nil];

    NSString *fileString = [[NSStringalloc]initWithContentsOfFile:pathencoding:NSUTF8StringEncoding error:nil];

NSString写入文件

NSString *astring = [[NSStringalloc] initWithString:@"This is a String!"];

    NSLog(@"astring:%@",astring);

    NSString *path =@"astring.text";

    [astring writeToFile: path atomically: YES]; //string写入文件

获取NSString的长度

NSString * bString = [NSStringstringWithFormat:@"I am a String."];

    NSInteger length = [bStringlength];

    NSLog(@"%@的长度为:%i",bString,length);

组合String

     NSString * a1String = [NSStringstringWithFormat:@"I am a1String"];

    NSString * a2String = [NSStringstringWithFormat:@"I am a2String"];

     NSString * cString = [a1String stringByAppendingFormat:a2String];

     NSString * b1String = [NSStringstringWithFormat:@"I am b1String"];

    NSString * b2String = [NSStringstringWithFormat:@"I am b2String"];

     NSString * dString = [b1StringstringByAppendingString:b2String];

判断开头结尾

NSMutableString  *a = [[NSMutableString alloc ] initWithString :@"i like long dress"];

NSLog(@"\n a: %@",a);

[a hasPrefix:@"i"] ==YESNSLog(@" i 开头"): NSLog(@"不以 i 开头");

[a hasSuffix:@"hat"] ==YES? NSLog(@" hat 结尾"): NSLog(@"不以 hat 结尾");

判断字符串是否相等

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];

0 0
原创粉丝点击