NSMutableString类

作者:追风剑情 发布于:2019-2-28 17:53 分类:Objective-C

NSMutableString类可以用来创建可以更改字符的字符串对象。因为是NSString类的子类,所以可以使用NSString类的所有方法。

常见的NSMutableString方法
方法 描述
+(id) stringWithCapacity: size 创建一个初始包含size字符的字符串
-(id) initWithCapacity: size 使用初始容量为size的字符来初始化字符串
-(void) setString: nsstring 将字符串设置为nsstring
-(void) appendString: nsstring 在接收者的末尾附加nsstring
-(void) deleteCharactersInRange: range 删除指定range中的字符
-(void) insertString: nestling atIndex: i 以索引i为起始位置插入nsstring
-(void) replaceCharactersInRange: range withString: nestling 使用nsstring替换range指定的字符
-(void) replaceOccurrencesOfString: nestling withString: nsstring2 options: opts range: range 根据选项opts,在指定范围range中用nsstring2替换所有的nestling。选项可以是以下值的按位或组合:NSBackwardsSearch(查找从范围尾部开始)、NSAnchoredSearch(nsstring必须匹配范围的开始)、NSLiteralString(执行逐字符比较)以及NSCaseInsensitiveSearch(忽略大小写)

示例

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSString *str1 = @"This is string A";
        NSString *search, *replace;
        NSMutableString *mstr;
        NSRange substr;
        
        // 从不可变字符串创建可变字符串
        mstr = [NSMutableString stringWithString: str1];
        NSLog(@"%@", mstr);
        
        // 插入字符
        [mstr insertString: @" mutable" atIndex: 7];
        NSLog(@"%@", mstr);
        
        // 插入末尾进行有效拼接
        [mstr insertString: @" and string B" atIndex: [mstr length]];
        NSLog(@"%@", mstr);
        
        // 直接使用appendString
        [mstr appendString: @" and string C"];
        NSLog(@"%@", mstr);
        
        // 根据范围删除子字符串
        [mstr deleteCharactersInRange: NSMakeRange(16, 13)];
        NSLog(@"%@", mstr);
        
        // 查找然后将其删除
        substr = [mstr rangeOfString: @"string B and "];
        if (substr.location != NSNotFound) {
            [mstr deleteCharactersInRange: substr];
            NSLog(@"%@", mstr);
        }
        
        // 直接设置为可变的字符串
        [mstr setString: @"This is string A"];
        NSLog(@"%@", mstr);
        
        // 替换一些字符
        [mstr replaceCharactersInRange: NSMakeRange(8, 8) withString: @"a mutable string"];
        NSLog(@"%@", mstr);
        
        // 查找和替换
        search = @"This is";
        replace = @"An example of";
        substr = [mstr rangeOfString: search];
        if (substr.location != NSNotFound) {
            [mstr replaceCharactersInRange: substr withString: replace];
            NSLog(@"%@", mstr);
        }
        
        // 查找和替换所有的匹配项
        search = @"a";
        replace = @"X";
        substr = [mstr rangeOfString: search];
        /*while (substr.location != NSNotFound) {
            [mstr replaceCharactersInRange: substr withString: replace];
            substr = [mstr rangeOfString: search];
        }*/
        // 查找并全部替换,和上面的while方式效果相同
        [mstr replaceOccurrencesOfString: search
                              withString: replace
                                 options: nil
                                   range: NSMakeRange(0, [mstr length])];
        NSLog(@"%@", mstr);
    }
    return 0;
}

运行测试
111.png

标签: Objective-C

Powered by emlog  蜀ICP备18021003号   sitemap

川公网安备 51019002001593号