首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

Objective-C NSMutableString 常用修改操作:插入、替換、刪除字符串

     編輯:關於C語言

繼承關係

NSMutableString 繼承自 NSString,擁有所有不可變字符串方法,另提供原地修改方法。

核心修改方法

1. 插入字符串


NSMutableString *str = [NSMutableString stringWithString:@"abc"];
[str insertString:@"xyz" atIndex:2]; // 在索引 2 處插入
NSLog(@"%@", str); // 輸出: abxyzc

2. 替換字符串


[str replaceCharactersInRange:NSMakeRange(0, 3) withString:@"123"];
NSLog(@"%@", str); // 輸出: 123yzc (原 0-2 替換為 123)

3. 刪除字符串


[str deleteCharactersInRange:NSMakeRange(0, 3)];
NSLog(@"%@", str); // 輸出: yzc (刪除前 3 字符)

範圍構造:NSMakeRange


NSRange range = NSMakeRange(location, length);
// location: 起始索引 (0-based)
// length: 字符數

完整鏈式操作示例


NSMutableString *s = [NSMutableString stringWithString:@"Hello World"];
NSLog(@"原始: %@", s);           // Hello World

[s insertString:@" Beautiful" atIndex:5];
NSLog(@"插入後: %@", s);         // Hello Beautiful World

[s replaceCharactersInRange:NSMakeRange(0, 5) withString:@"Hi"];
NSLog(@"替換後: %@", s);         // Hi Beautiful World

[s deleteCharactersInRange:NSMakeRange(2, 10)];
NSLog(@"刪除後: %@", s);         // Hi World

NSMutableString vs NSString 選擇指南

性能提示

  • 大量拼接預知總長度:[NSMutableString stringWithCapacity:1024] 預分配
  • 避免在循環中用 stringByAppendingString: (NSString) → O(n²) 災難
  • NSMutableString 非線程安全,多線程需加鎖或用 dispatch_queue 序列化

常見陷阱

  1. 索引越界拋出 NSRangeException,操作前檢查 range.location + range.length <= [str length]
  2. insertString:atIndex: 索引可等於長度(相當於追加)
  3. replaceCharactersInRange:withString: 的 withString 可為 @""(相當於刪除)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
場景推薦類型理由
頻繁拼接、修改NSMutableString原地修改,避免重複分配拷貝
多線程共享、只讀NSString不可變天然線程安全
字典鍵、集合元素NSString不可變保證哈希值穩定
構建過程中修改、最終定型NSMutableString → copy構建用可變,定型用 copy 產生不可變快照