Objective-C NSMutableStringを使って文字列を結合する


スポンサーリンク


NSStringクラスのインスタンスは一度作成したら変更しないことが推奨されています。
JavaでいうとStringクラスみたいなものです。

変更を伴う予定の文字列を扱うときは、NSMutableStringクラスを使います。
NSMutableStringはNSStringを継承しているので、NSStringで使えるメソッドはNSMutableStringでも使えます。

実際の例を見てみていきましょう。

見ていくメソッドは以下のとおりです。


文字列を結合する

// insert code here...
NSMutableString *mstr = [[NSMutableString alloc] initWithString:@"Hello World"];

//文字列を結合する
[mstr appendString:@",Here is Japan"];

NSLog(@"文字列は %@ です。", mstr); //文字列はHello World,Here is Japanです。


文字列を別の文字列に置き換える

// insert code here...
NSMutableString *mstr = [[NSMutableString alloc] initWithString:@"Hello World"];
//文字列を置き換える
[mstr setString:@"I have a pen"];

NSLog(@"置き換えた文字列は %@ です",mstr); //置き換えた文字列は I have a pen です


指定した位置に文字列を挿入する

//上からの続きで、こいつに挿入します
NSLog(@"置き換えた文字列は %@ です",mstr); //置き換えた文字列は I have a pen です

//指定した位置に文字列を挿入する
[mstr insertString:@"♪♪" atIndex:6];

NSLog(@"挿入した後の文字列は %@ です",mstr);//挿入した後の文字列は I have♪♪ a pen です


指定した位置の文字列を置換する

//こいつを置換します
NSLog(@"挿入した後の文字列は %@ です",mstr);//挿入した後の文字列は I have♪♪ a pen です

//指定した位置の文字列を置換する(6文字目から2文字分を指定した文字列で置換する)
[mstr replaceCharactersInRange: NSMakeRange(6,2) withString:@"★★★"];

NSLog(@"置換した後の文字列は %@ です",mstr);//換した後の文字列は I have★★★ a pen です


指定した位置の文字列を削除する

//指定した位置の文字を削除する
[mstr deleteCharactersInRange: NSMakeRange(6,3)];

NSLog(@"削除したあとの文字列は %@ です",mstr); //削除したあとの文字列は I have a pen です