文字列の管理(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.