iPhoneアプリ開発の虎の巻
HOME > NSString

NSString

NSStringクラスは、Objective-Cで文字列を扱うクラスです。NSStringは変更不可なので、可変の文字列を扱いたい場合はNSMutalbeStringクラスを使用します。

NSStringのクラス階層

NSObject ↑ NSString

NSStringの生成

// 文字列生成例1
NSString *str = @"ほげ";
str → "ほげ"

// 文字列生成例2
NSString *str = [NSString stringWithString:@"ほげ"];
str → "ほげ"

// 置換文字列を使用した生成例
NSString *str =
    [NSString stringWithFormat:@"%@は%fkmです。", @"フルマラソン", 42.195];
str → "フルマラソンは42.195kmです。"

// 配列の生成例
NSString *strs[] = {@"あ", @"い", @"う"};
str[0] → "あ"
str[1] → "い"
str[2] → "う"

※置換文字列として指定できる文字は以下のとおりです。(主なもののみ)

【置換文字列】
置換文字列
%@ NSString型
%d 数値型
%f 小数型
%% "%"

NSStringのメソッド

【NSStringの主要メソッド】
メソッド 説明
-(unsigned int)length 文字列の長さを取得する
(例)文字列"hogehoge"の長さを取得する
 int len = [@"hogehoge" length];
 len → 8
-(BOOL)isEqualToString:
(NSString*)string
同じ文字列であるか比較する
(例)
 BOOL bl = [@"hoge" isEqualToString:@"HOGE"];
 bl → FALSE
-(NSString*)stringByAppendingString:
(NSString*)string
文字列を結合する
※例は下記参照
-(NSString*)substringToIndex:
(unsigned)anIndex
文字列の切り出し
※例は下記参照
-(NSString*)
stringByTrimmingCharactersInSet:
(NSCharacterSet*)set
トリムする
※例は下記参照
-(BOOL)hasPrefix:(NSString*)string 文字列の先頭比較
※例は下記参照
-(BOOL)hasSuffix:(NSString*)string 文字列の後方比較
※例は下記参照
-(NSRange)rangeOfString:
(NSString*)aString
文字列中の文字を検索する
※例は下記参照
-(int)intValue int型にキャストする
(例)int val = [@"123" intValue];
-(float)floatValue float型にキャストする
(例)float val = [@"123.45" floatValue];
-(double)doubleValue double型にキャストする
(例)double val = [@"123.45" doubleValue];
-(BOOL)boolValue BOOL型にキャストする
(例)BOOL b = [str boolValue];

主要なメソッドのみ掲載しています。
 上記「NSStringのクラス階層」にあるクラスのメソッドも使用できます。

NSString各種例文

【文字列の切り出し例文】

// 先頭から3文字取得
NSString *str = [@"あいうえお" substringToIndex:3];
  str → "あいう"

// 3文字目から後ろを取得
NSString *str = [@"あいうえお" substringFromIndex:3];
  str → "えお"

// 2文字目から3文字分を取得
NSString *str = [@"あいうえお" substringWithRange:NSMakeRange(1,3)];
  str → "いうえ"

【トリム例文】

// ABCの前後にあるスペースを取り除く
NSString *str = [@"  ABC   " stringByTrimmingCharactersInSet:
                                 [NSCharacterSet whitespaceCharacterSet]];
  str → "ABC"


【前比較、後比較の例文】

BOOL bl = [str hasPrefix:@"hoge"];  // 文字列strが"hoge"から始まる文字列であればTRUE
BOOL bl = [str hasSuffix:@"hoge"];  // 文字列strが"hoge"で終わる文字列であればTRUE

【文字列検索の例文】

// 文字列strの中に@"AAA"というパターンが存在するかどうか
NSRange searchResult = [str rangeOfString@"AAA"];
if(searchResult.location == NSNotFound){
  // みつからない場合の処理
}else{
  // みつかった場合の処理
}

【文字列検索の比較】

// 文字列valの値が@"Hoge"であるかどうか比較する
NSString *val = @"hoge";
BOOL b = [val isEqualToString:@"Hoge"];
  b → NO

※文字列を比較する時は「isEqualToString」を使用します。
「val == @"Hoge"」とやっても正しく比較されないのでご注意ください。


【文字列の結合】

// 文字列str1とstr2を結合する
NSString *str1 = @"ho";
NSString *str2 = @"ge";

NSString *val = [str1 stringByAppendingString:str2];
  val → @"hoge"
totop