トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

文字列の管理(NSString)_mac

文字列の管理(NSString)

Cocoa上での文字列の管理は「NSString」クラスにて行うことができます。

文字列クラス(NSString)の生成

カラの文字列を生成します。

NSString *pStr = [[NSString alloc] init];

文字列クラスの破棄

生成した文字列を解放します。

[pStr release];

使用後は必ず解放するようにしてください。

以降、pStrは「NSString *」型とします。

文字列を代入

pStr = @"文字列です";

決まった文字列を入れる場合は、「@"〜"」の中に文字列を入れるようにします。

文字列の長さを取得

int len = [pStr length];

「length」関数にて文字列の長さを求めます。全角は1文字にカウントされますので(バイト数ではないです)注意してください。

文字列を連結する

NSString *pStr1 = [[NSString alloc] init];
NSString *pStr2 = [[NSString alloc] init];
pStr1 = @"文字列1";
pStr2 = @"文字列2";

// pStr1とStr2を連結して、新たにpStr3のNSStringを生成する
NSString *pStr3 = [pStr1 stringByAppendingString:pStr2];
 
// 使用した文字列を解放
[pStr1 release];
[pStr2 release];
[pStr3 release];

文字列の連結は「stringByAppendingString」にて行います。この場合は、pStr3に「文字列1文字列2」の内容がnewされます。

文字列が同じか調べる

NSString *pStr = [[NSString alloc] init];
pStr = @"ABCDEFG";
bool b = [pStr stringByAppendingString:@"ABCDEFG"];

[pStr release];

文字列の比較は「stringByAppendingString」にて行います。上記の場合は、pStrの文字列と"ABCDEFG"は同じなので、変数bにtrueが返ります。

指定位置の文字列を取り出す

NSString *pStr = [[NSString alloc] init];
pStr = @"ABCDEFG";
NSString *pStr2 = [pStr substringWithRange:NSMakeRange(0, 3)];

[pStr release];
[pStr2 release];

文字列から指定した位置、長さの文字列を取り出します。上記の場合は「ABCDEFG」から0番目の3も自分を「substringWithRange」関数にて取り出すことになります。pStr2には「ABC」が入ることになります。

C言語文字列を取得

NSString *pStr = [[NSString alloc] init];
pStr = @"ABCDEFG";
const char *pS;

pS = [pStr UTF8String];

[pStr release];

NSStringのままではC言語からはアクセスできないため、「UTF8String」にて「const char *」型の文字列の先頭ポインタを取得します。文字列はUTF-8にて取得することができます。

C言語文字列をNSStringとして生成

char szStr[256];
strcpy(szStr, "hehoe");

NSString *str = [[NSString alloc] initWithUTF8String:szStr];

[str release];

C言語文字列(ここではszStrにて指定)をNSStringに変換します。「initWithUTF8String」関数を使用。

Future's Laboratory 技術格納庫 2004-2013 Yutaka Yoshisaka.