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(@"見つかった"); } 【結果】見つかった