从本系列文章的开始,我们就使用过字符串对象,但是我们却还没有比较详细的介绍过它.使用@符,再一对双引号将一组字符串引用起来,例如:

@“In fact, Objective-C is very simple.”;

就是使用Objective-C语言创建了一个字符串对象.Foundation框架使用一个名为NSString的类,用于处理字符串对句.正如我们所看到的,在Objective-C中创建一个常量字符串对象,需要在字符串开头放置一个@符号.特殊情况下,它属于NSConstantString类的常量字符串对象.NSConstantString类是NSString类的子类.

可变对象与不可变对象

我们上面创建的字符串对象@“In fact, Objective-C is very simple.”;是一个内容不可更改的对象,这称为不可变对象.(你可以操作他们,但是你不可以删除字符或者增加字符来改变它).可以使用NSString类处理不可变字符串.但是我们经常需要处理字符串并更改字符串中的字符,比如,有时我们需要从一串字符中删除一些字符,或替换掉一些字符.这种类型的字符串是使用NSMutableString类处理的.

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        //创建常量字符串
        NSString* str1 = @"In fact, Objective-C is very simple.";

        //创建空字符串,给予赋值
        NSString* str2 = [[NSString alloc] init];
        str2 = str1;
        NSLog(@"str2: %@",str2);

        //使用initWithString方法
        NSString* str3 = [[NSString alloc] initWithString:str1];
        NSLog(@"str3: %@",str3);

        //将一个字符串复制到另一个字符串
        NSString* str4 = [NSString stringWithString:str1];
        NSLog(@"str4: %@",str4);

        //将一个字符串复制到另一个字符串结果,即连接两个字符串
        NSLog(@"str1 concatentation str2: %@",[str1 stringByAppendingString:str2]);

        //计算字符串的长度(length)
        NSLog(@"Length of str1: %lu",[str1 length]);

        //验证两个字符串是否相等
        if ([str1 isEqualToString:str2]) {
            NSLog(@"str1 == str2 ");
        }else{
            NSLog(@"str1 != str2");
        }

        //将字符串转化为大写
        NSLog(@"Uppercase str1: %@",[str1 uppercaseString]);

        //将字符串转化为小写
        NSLog(@"Uppercase str1: %@",[str1 lowercaseString]);

        //返回索引i的Unicode字符
        NSLog(@"%hu",[str1 characterAtIndex:10]);

    }

    return 0;
}

NSString方法 +(id) stringWithContentsOfFile:path encoding:enc error:err 创建一个新字符串并将其设置为path指定的文件的内容,使用字符编码enc,如果非零,则返回err中错误

+(id) stringWithContentsOfURL:url encoding:enc error:err 创建一个新的字符串,并将其设置为url的内容,使用字符编码enc,如果非零,则返回err中的错误

+(id) string 创建一个新的空字符串

+(id) stringWithString:nsstring 创建一个新的字符串,并将其设置为nsstring

-(id)initWithString:nsstring 将分配的字符串设置为nsstring

-(id) initWithContentsOfFile:path encoding:enc error:err 将字符串设置为path制定的文件的内容

-(id) initWithContentsOfURL:url encoding:enc error:err 将字符串设置为url(NSURL *)url的内容,使用字符编码enc,如果非零,则返回err中的错误

-(id) (UNSIgned int)length 返回字符串中的字符数目

-(unichar)characterAtIndex:i 返回索引i的Unicode字符

-(NSString *)substringFromIndex:i 返回从i开始知道结尾的子字符串

-(NSString *)substringWithRange:range 根据指定范围返回子字符串

-(NSString *)substringToIndex:i 返回从该字符串开始到索i的子字符串

-(NSComparator *)caseInsensitiveCompare:nsstring 比较两个字符串,忽略大小写

-(NSComparator *)compare:nsstring 比较两个字符串

-(BOOL)hasPrefix:nsstring 测试字符串是否以nsstring开始

-(BOOL)hasSuffix:nsstring 测试字符串是否以nsstrng结尾

-(BOOL)isEqualToString:nsstring 测试两个字符串是否相等

-(NSString *) capitalizedString 返回每个单词首字母大写的字符串(每个单词的其余字母转换为小写)

-(NSString *)lowercaseString 返回转换为小写的字符串

-(NSString *)uppercaseString 返回转换为大写的字符串

-(const char*)UTF8String 返回转换为UIF-8字符串的字符串

-(double)doubleValue 返回转换为double的字符串

-(float)floatValue 返回转换为浮点值的字符串

-(NSInteger)integerValue 返回转换为NSInteger整数的字符串

-(int)intValue 返回转换为整数的字符串

NSMutableString方法 NSMutableString类可以用来创建可以更改字符的字符串对句.因为是NSString的子类,所以可以使用NSString类的所有方法. +(id) stringWithCapacity:size 创建一个字符串,初始包含size的字符

-(id) initWithCapacity:size 使用初始容量为size的字符串来初始化字符串

-(void) setString:nsstring 将字符串设置为nsstring

-(void) appendString:nsstring 在接收者的末尾附加nsstring

-(void) deleteCharactersInRange:range 删除指定range中的字符

-(void) insertString:nsstring atIndex:i 以索引i为起始位置插入nsstring

-(void) replaceCharactersInRange:range withString:nsstring 使用nsstring替换range指定的字符

-(void) replaceOccurrencesOfString:nsstring withString:nsstring2 options:opts range:range 根据选项opts。使用指定range中的nsstring2替换所有的nsstring。选项可以包括NSBackwardsSearch(从范围的结尾 开始搜索)NSAnchoredSearch(nsstring必须匹配范围的开始),NSLiteralSearch(执行逐字节比较以及 NSCaceInsensitiveSearch的按位或组合)