2013年08月26日

Objective-CのNSStringクラスで文字列を扱う

Objective-CではNSStringクラスで文字列を扱うことができます

NSString *str = @"hello world!";
NSLog(@"%@",str);//hello world!


stringWithFormatメソッドを利用することでフォーマットに文字列や数値などを入れて新しい文字列を作成することができます。

NSString *str1 = @"hello";
NSString *str2 = @"world!";
int point = 12;
NSString *str = [NSString stringWithFormat:@"%@ + %@ / %d",str1,str2,point];
NSLog(@"%@",str);//hello + world! / 12


NSStringクラスのインスタンスに対してstringByAppendingStringメソッドで文字列の連結が可能です。

NSString *str1 = @"hello";
NSString *str2 = @"world!";
NSString *str = [str1 stringByAppendingString:str2];
NSLog(@"%@",str);


lengthメソッドで文字列の長さが取得できます。

NSString *str = @"hello world!";
NSInteger num = [str length];
NSLog(@"%d",num);//12


substringFromIndexメソッドやsubstringToIndexメソッドでは文字列を特定の位置から取り出すことができます。引数には位置を指定し、位置以降を取得するにはsubstringFromIndexメソッド、位置以前を取得するにはsubstringToIndexメソッドを利用します。

NSString *str = @"hello world!";
NSString *str1 = [str substringFromIndex:4];
NSString *str2 = [str substringToIndex:4];
NSLog(@"%@",str1);//o world!
NSLog(@"%@",str2);//hell


ある位置から特定の文字数だけ取得する場合にはsubstringWithRangeメソッドを利用します。substringWithRangeメソッドは引数にNSRangeオブジェクトをとり、NSRangeのlocationプロパティに開始位置をlengthプロパティに取得文字数を指定します。

NSString *str = @"hello world!";
NSRange range;
range.location = 4;
range.length = 3;
NSString *str1 = [str substringWithRange:range];
NSLog(@"%@",str1);//o w


NSMakeRangeメソッドを利用するとNSRangeオブジェクトとプロパティを簡単に指定できます。

NSString *str = @"hello world!";
NSString *str1 = [str substringWithRange:NSMakeRange(4, 3)];
NSLog(@"%@",str1);


rangeOfStringメソッドを利用すると文字列の検索を行うことができます。検索結果はNSRangeオブジェクトで返ってきます。

NSString *str = @"hello world!";
NSString *search = @"he";
NSRange range = [str rangeOfString:search];
if(range.location == NSNotFound){
NSLog(@"%@は含まれていません",search);
}else{
NSLog(@"%@は含まれています%d文字目です",search,range.location+1);
}


isEqualToStringメソッドで文字列の比較が行えます。

NSString *str1 = @"str1";
NSString *str2 = @"str1";
if([str1 isEqualToString:str2]){
NSLog(@"%@と%@は同じも熾烈です",str1,str2);
}


compareメソッドを文字列の比較を行うこともできます、

NSString *str1 = @"str1";
NSString *str2 = @"str1";
if([str1 compare:str2] == NSOrderedSame){
NSLog(@"%@と%@は同じも熾烈です",str1,str2);
}


lowercaseStringメソッドやuppercaseStringメソッドを利用すると文字列を小文字/大文字に変換できます。

NSString *str = @"iPhone";
NSLog(@"%@",[str lowercaseString]);//iphone
NSLog(@"%@",[str uppercaseString]);//IPHONE


stringByReplacingOccurrencesOfStringメソッドを利用すると文字列の置き換えができます。

NSString *str = @"iPhone";
NSLog(@"%@",[str stringByReplacingOccurrencesOfString:@"Phone" withString:@"Pad"]);


stringByReplacingCharactersInRangeメソッドを利用すると指定した範囲の文字列を置き換えます。

NSString *str = @"iPhone";
NSLog(@"%@",[str stringByReplacingCharactersInRange:NSMakeRange(1, 5) withString:@"Pad"]);


integerValueメソッドで文字列を数値に、boolValueで真偽値に変換します。

NSString *str1 = @"123";
NSLog(@"%d",[str1 integerValue]);//123
NSString *str2 = @"y";
NSLog(@"%d",[str2 boolValue]);//1


posted by ねこまんま at 00:39
Comment(0) | TrackBack(0) | iPhone
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。
※半角英数字のみのコメントは投稿できません。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。