文字列(NSString,NSMutableString)の使い方・編集方法

Xcode(Objective-C)で文字列を扱うときに
知っておくと便利なメソッドについて忘れないように
まとめておきます。

■NSString
普通に文字列を代入して使うにはNSStringを使います。

NSString *str = @"Hello World!";

■NSMutableString
文字列を変更しない場合はNSStringで良いのですが
文字を追加したり1文字だけ削除したい場合はNSMutableStringを使います。
NSMutableStringはNSStringを継承しているので、NSStringのメソッドも使えます。

NSMutableString *str = [NSMutableString stringWithString:@"Hello World!"];

■文字列の比較
文字列が一致しているか比較したい場合。

NSString *str = @"abcde";
BOOL strCheck = [str isEqualToString:@"abc"];
【結果】strCheck → NO

■文字列の一部を取得
文字列の先頭から3文字を取得したい場合。

NSString *str = [@"ABCDE" substringToIndex:3];
【結果】str → ABC

文字列の3文字目から後ろの文字列を取得したい場合。

NSString *str = [@"ABCDE" substringFromIndex:2];
【結果】str → CDE

文字列の3文字目から2文字を取得したい場合。

NSString *str = [@"ABCDE" substringWithRange:NSMakeRange(2,2)];
【結果】str → CD

■文字列を結合する(1)
文字列変数str1と文字列変数str2をstr3として結合する。

NSString *str1 = @"aaa";
NSString *str2 = @"bbb";
NSString *str3 = [str1 stringByAppendingString:str2];
【結果】str3 → aaabbb

■文字列を結合する(2)
文字列「aaa」の代入された変数stringに文字列「bbb」を結合したい場合。

NSMutableString *str = [NSMutableString stringWithString:@"aaa"];
str = [str appendString:@"bbb"];
【結果】str → aaabbb

■指定した位置に文字列を挿入する
文字列「aaabbb」の「a」と「b」の間に「X」を挿入したい場合。

NSMutableString *str = [NSMutableString stringWithString:@"aaabbb"];
[str insertString:@"X" atIndex:3];
【結果】str → aaaXbbb

■指定した位置の文字列を削除する
文字列「aaaXXXbbb」の中の「XXX」の3文字を削除したい場合。

NSMutableString *str = [NSMutableString stringWithString:@"aaaXXXbbb"];
[str deleteCharactersInRange:NSMakeRange(3,3)];
【結果】str → aaabbb

■文字列を特定文字で分割
1つの文字列の中に書かれた日付を「-」で分割したい場合。

NSString * str = [NSMutableString stringWithString:@"2000-11-22"];
NSArray *record = [str componentsSeparatedByString:@"-"];
【結果】
record[0] → 2000
record[1] → 11
record[2] → 22

■文字列の文字数(長さ)
文字列の文字数を取得したい場合。

NSString *str = @"12345";
int length = [string length];
【結果】length → 5

■文字列の検索
文字列「abcdefghijkcd」の中に「cd」の文字があるか検索したい場合。

NSString *str = @"abcdefghijk";	
NSRange range = [str rangeOfString:@"cd"];
if(range.location == NSNotFound){
    // 見つからない場合の処理
    NSLog(@"見つからない");
}else{
    // 見つかった場合の処理
    NSLog(@"見つかった");
}
【結果】見つかった
タイトルとURLをコピーしました