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のメソッド
メソッド | 説明 |
---|---|
-(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"