【iOS備忘録】 いろいろな文字列を数値やブール値に変換してみる
文字列を数値に変換する方法
文字列変数をstr とします。これを数値に変換するメソッドには
intValue
doubleValue
floatValue
などがあります。つまり
[str intValue]
とすれば、文字列 str が数値に変換されます。Yes や No などのBool値に変換するには
boolValue
です。NSNumberに変換したい場合は
@(str intValue)
とすればいいわけですね。
例
NSString *str = @"123";
int a;
a=[str intValue];
これでaに123という数値が入ります。
実験1. 文字列に数字以外の情報が入っている場合
i ) 数字+文字 の場合
最初の数字がすべて数値になります。
NSString *str = @"123だよ";
int a;
a=[str intValue];
NSLog(@"a=%d",a);
出力結果
a=123
ii ) 文字+数字 の場合
0になります。
NSString *str = @"これは123";
int a;
a=[str intValue];
NSLog(@"a=%d",a);
出力結果
a=0
iii ) 数字+文字+数字 の場合
最初の数字のみ
NSString *str = @"123と456";
int a;
a=[str intValue];
NSLog(@"a=%d",a);
出力結果
a=123
iv) 数字+半角スペース+数字 の場合
最初の数字のみ
NSString *str = @"123 456";
NSInteger a;
a=[str integerValue];
出力結果
a=123
実験2. Bool値になる条件は?
i ) 最初の数字列に0以外の数字が含まれている場合
Yes(数値=1)に変換されます。
NSString *str = @"000123";
BOOL a;
a=[str boolValue];
NSLog(@"a=%d",a);
出力結果
a=1
ii ) 最初の数字列に0のみが含まれている場合
No(数値=0)に変換されます。
NSString *str = @"000と123";
BOOL a;
a=[str boolValue];
NSLog(@"a=%d",a);
出力結果
a=0
iii ) 文字列の最初がY, y, T, t で始まる場合
Yes(数値=1)に変換されます。
NSString *str = @"yellow";
BOOL a;
a=[str boolValue];
NSLog(@"a=%d",a);
出力結果
a=1
iv ) 文字列の最初がY, y, T, t で始まらない場合
No(数値=0)に変換されます。
NSString *str = @"ok123";
BOOL a;
a=[str boolValue];
NSLog(@"a=%d",a);
出力結果
a=0