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

Objective-C 字符串核心類 NSString 與 NSMutableString 深度解析

     編輯:關於C語言

Objective-C 字符串核心類 NSString 與 NSMutableString 深度解析

NSString(不可變)與 NSMutableString(可變)是 Foundation 框架處理文本的基石。

NSString 常用創建方式

// 字面量(常量區)
NSString *s1 = @"iPhone";

// alloc/init
NSString *s2 = [[NSString alloc] initWithString:@"iOS"];

// 格式化
NSInteger v = 6;
NSString *s3 = [[NSString alloc] initWithFormat:@"iPhone %ld", v];

// 便利構造器
NSString *s4 = [NSString stringWithFormat:@"iOS %ld", v];

核心操作

操作方法示例
長度[str length] / str.length
前綴/後綴判斷[str hasPrefix:@"ab"] / [str hasSuffix:@"cd"]
子串截取[str substringToIndex:3] [str substringFromIndex:6] [str substringWithRange:NSMakeRange(3,3)]
拼接[s1 stringByAppendingString:s2] [NSString stringWithFormat:@"%@%@", s1, s2]
替換[str stringByReplacingOccurrencesOfString:@"N" withString:@"C"]
比較[s1 isEqualToString:s2] (內容) vs s1 == s2 (指針)
數值轉換[str intValue] [str integerValue] [str floatValue]
大小寫[str uppercaseString] [str lowercaseString] [str capitalizedString]

NSMutableString 可變操作

NSMutableString *ms = [NSMutableString stringWithCapacity:0];
[ms appendString:@"iPhone"];
[ms appendFormat:@" %ld", 15];
[ms insertString:@" " atIndex:6];
[ms deleteCharactersInRange:NSMakeRange(0, 7)];
[ms replaceCharactersInRange:NSMakeRange(ms.length-3, 3) withString:@"jpg"];

實戰練習:副檔名轉換

NSMutableString *name = [NSMutableString stringWithString:@"藍鷗.png"];
if ([name hasSuffix:@".png"]) {
    [name replaceCharactersInRange:NSMakeRange(name.length-3, 3) withString:@"jpg"];
} else {
    [name appendString:@".jpg"];
}
// 結果:藍鷗.jpg

記憶體管理提示

  • ARC 環境下自動管理,無需手動 retain/release。
  • NSString 字面量駐留在常量區,不可變優化共享。
  • 頻繁修改字符串時優先用 NSMutableString 避免大量中間對象分配。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved