http://furnacedigital.blogspot.com/2011/04/nsstring.html
NSString 是 Objective-C 語言中最常被使用的字串形式,原始 C 語言字串形式是由字元(Character)所組成,而 NSString 是由 Unichar 所組成,所能使用的位元數更廣,也能表達更多不同的字元,下面我們將介紹一些與 NSString 有關的常用語法。
如果開啟的是空白專案,在使用 NSString 語法時,可能需要引入其標頭檔,才能正常執行,下列程式碼是在以啟用 ARC(Automatic Reference Counting)機制的情況下為前提,ARC 機制可以讓您不必為變數所佔用的記憶體加以控管,如果您不想使用此機制,可以參考
在 Xcode 4 中關閉 ARC 的方法一文,來針對部分的檔案或是整個專案關閉 ARC 機制。
1 | #import <Foundation/NSString.h> |
宣告與格式化
1 2 | NSString *str = @"NSString"; |
1 2 | NSString *str =[[NSString alloc] init]; |
1 2 3 | char *cstring = "CString"; NSString *str = [[NSString alloc] initWithCString:cstring]; |
1 2 3 4 5 | NSString *str =[[NSString alloc] initWithString:@"NSString"]; str = [NSString stringWithFormat:@"This is %@", str]; NSLog(@"%@", str); |
 |
| 字串格式化 |
大小寫的轉換
1 2 3 4 5 6 7 8 9 | NSString *str =[[NSString alloc] initWithString:@"NSString"]; NSLog(@"%@",[str uppercaseString]); NSLog(@"%@",[str lowercaseString]); NSLog(@"%@", [str capitalizedString]); |
 |
| 字串的大小寫轉換 |
在 iOS 6 SDK 中,你可以使用 NSString 新的方法函式來變更字串的大小寫,新的方法函式加入了 NSLocale 的概念,使裝置在不同的語系設定下皆可以正確的轉換這些字串。
1 2 3 4 5 6 7 8 9 10 11 | NSString *upperString = [string uppercaseStringWithLocale:[NSLocale currentLocale]]; NSLog(@"全部大寫: %@", upperString); NSString *lowerString = [string lowercaseStringWithLocale:[NSLocale currentLocale]]; NSLog(@"全部小寫: %@", lowerString); NSString *capString = [string capitalizedStringWithLocale:[NSLocale currentLocale]]; NSLog(@"只有字首大寫: %@", capString) |
 |
| iOS 6 SDK NSString 中新的方法函式 |
比較
1 2 3 4 5 6 7 8 9 10 | NSString *str_A =[[NSString alloc] initWithString:@"NSString"]; NSString *str_B =[[NSString alloc] initWithString:@"nsstring"]; BOOL compare; compare = [str_A isEqualToString:str_B]; compare = [str_A caseInsensitiveCompare:str_B] == NSOrderedSame; |
1 2 3 4 5 6 7 8 | NSString *str =[[NSString alloc] initWithString:@"NSString"]; NSRange search = [str rangeOfString:@"Str"]; NSLog(@"%i", search.location); |
 |
| 字串的收尋 |
擷取
1 2 3 4 5 6 7 8 9 10 11 | NSString *str =[[NSString alloc] initWithString:@"NSString"]; NSLog(@"%@", [str substringToIndex:5]); NSLog(@"%@", [str substringFromIndex:5]); NSLog(@"%@", [str substringWithRange:NSMakeRange(2, 3)]); |
 |
| 字串擷取 |
替換
1 2 3 4 5 6 7 8 9 10 11 | NSString *str =[[NSString alloc] initWithString:@"NSString"]; NSString *_str; _str = [str stringByReplacingOccurrencesOfString:@"NS" withString:@"CS"]; NSLog(@"%@", _str); _str = [str stringByReplacingCharactersInRange:NSMakeRange(2, 3) withString:@"*******"]; NSLog(@"%@", _str); |
 |
| 替換字串 |
排列
字串同時也可以做升冪或是降冪的排列,以降冪的方式舉例來說,數字通常會比英文字母獲得比較高的排序數值,而符號的排序數值又會比數自來的更高些,因此以降冪的排序結果,最後就會呈現符號 → 數字 → 英文字母這樣的排序方式,你可以參考
關於兩個 NSString 字串之間的升冪與降冪排序一文,來獲得更多字串排列的資訊。
拆解
在某些情況下可能會需要拆解字串,例如文件內容的處理,或是分析從網路上擷取下來的字串等。在 NSString 類別中就有提供拆解的方法,並且將拆解所得到的字串分別置入 NSArray 中,你可以參考
NSString 字串的拆解方法一文,來獲得更多字串拆解的資訊。