Objective-C 的可变字符串 NSMutableString

    技术2025-03-26  7

     

     NSString NSObject的子类

    NSString是不可变的,意思是他声明的对象我们不可以改变,如果要改变,可以使用它的子类:NSMutableString

     

    你可以使用类方法:stringWithCapacity来创建一个新的NSMutableString,声明如下:

    *  (id) stringWithCapacity: (unsigned) capacity:

     

    可按如下方法声明一个新的可变字符串:

    NSString *str1;

    Str1 = [NSMutableString stringWithCapacity:42];

     

    可以使用appendStringappendFormat来对可变字符串操作:

      - voidappendString: (Nsstring *) aString;

      -  (void) appendFormat: (NSString *) Format;

     

    appendString 接受参数aString,然后将其复制到接受对象的末尾。

    appendFormat类似,他将格式化的字符串附加在接受对象的末尾,而不是创建新的对象。

    EXP:

    NSMutableString *string;

    string = [NSMutableString stringWithcapacity:50];

    [string appendString: @”hello,there”];

    [string appendFormat: @”human %d!”, 39];

     这段代码的string最后被赋值为:hello,there human 39!

     

    你还可以使用deleteCharactersInRange:方法来删除字符串中的字符:

    - void deleteCharactersInRange: (NSRange) range;

     

    通常将deleteCharactersInRange: rangeOfString:连在一起使用,NSMutableString可以使用NSString的全部功能,包括rangeOfString:、字符串比较和其他任何功能。

    例如,你列了一个所有朋友列表,你突然又不喜欢Jack了,想把他从朋友列表里删除:

    //朋友列表初始化

    NSMutableString *friends;

    friends = [NSMutableString stringWithcapacity: 50];

    [friends appendString: @”level fang jack even”];

     

    //找到jack并且删除

    NSRange jackRange;

    jackRange = [friends rangeOfString: @”jack”];

    jackRange.length++; //eat the space that follows

    [friends deleteCharactersInRange: jackRange];

     

     

     

     

     

     

     

    最新回复(0)