分享

Objective-C入门教程11:字符串(NSString)及常见字符串处理函数

 Java技术馆 2015-01-23

Objective-C入门教程11:字符串(NSString)及常见字符串处理函数

柳志超博客 ? Program ? Objective-C ? Objective-C入门教程11:字符串(NSString)及常见字符串处理函数

posted in Objective-C on by

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

@”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的按位或组合)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多