おとうさまくんの手作り工房

日曜大工としてのプログラミングを紹介します。

【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 = @"123456";

    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 = @"000123";

    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