こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、Rubyの文字列をIntegerクラスの数字に変換するto_iメソッドについて
- to_iメソッドとは
- to_iメソッドを使ったサンプルプログラム
と、丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
この記事ではRubyプログラムは
C:\rubystudy
に作成しています。
to_iメソッドとは
to_iメソッドとは、レシーバーのオブジェクト文字列をIntegerクラスの数値に変換した値を返すメソッドです。
レシーバーについては、こちらの記事をご参考ください。
もしレシーバーの文字列が「sample」など整数に変換できない値であった場合、0を返します。
to_iメソッドは使い方が
- パターン1:引数を指定しない場合
- パターン2:引数を指定する場合
の合計2パターンあります。
それぞれ解説します。
パターン1:引数を指定しない場合
引数を指定しない場合は、呼び出した文字列を単純にInteger型に変換した値が返されます。
使い方サンプルは以下です。
1 2 |
sample = "10" result = sample.to_i |
上記の例だと、resultにはInteger型の
1 |
10 |
が返されます。
パターン2:引数を指定する場合
引数を指定する場合は、引数に呼び出した文字列を何進数として扱うかを指定します。
文字列を引数の進数として計算し、十進数のInteger型に変換した値が返されます。
使い方サンプルは以下です。
1 2 |
sample = "11" result = sample.to_i(2) |
上記の例だと、resultには「11」を二進数として計算し、Integer型の
1 |
3 |
が返されます。
引数には、0と2から36までを設定することが可能です。
それ以外の値を設定した場合、ArgumentErrorという例外が発生します。
たとえば
1 2 |
sample = "9" result = sample.to_i(40) |
を実行すると、
1 2 3 |
Traceback (most recent call last): 1: from sample.rb:2:in `<main>' sample.rb:2:in `to_i': invalid radix 40 (ArgumentError) |
となります。
引数を指定する場合は、ご注意ください。
では、次の章で実際に使ってみます。
to_iメソッドを解説するプログラムの概要
to_iメソッドを解説するプログラムでは、整数型の配列を用意し
- パターン1:引数を指定しない場合
- パターン2:引数を指定する場合
それぞれで、to_iメソッドを使い、結果を表示させます。
Rubyサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# to_iメソッドサンプル puts "■パターン1:引数なしの場合" num1 = "4" num2 = "test" puts "文字列4を整数に変換:#{num1.to_i}" puts "文字列testを整数に変換:#{num2.to_i}" puts puts "■パターン2:引数ありの場合" num3 = "111" num4 = "sample" num5 = "F" puts "文字列111を2進数として整数に変換:#{num3.to_i(2)}" puts "文字列sampleを2進数として整数に変換:#{num4.to_i(2)}" puts "文字列Fを16進数として整数に変換:#{num5.to_i(16)}" |
実行結果
では、実行します。
Rubyプログラムを実行するやり方は、以下の記事をご参考ください。
1 2 3 4 5 6 7 8 |
■パターン1:引数なしの場合 文字列4を整数に変換:4 文字列testを整数に変換:0 ■パターン2:引数ありの場合 文字列111を2進数として整数に変換:7 文字列sampleを2進数として整数に変換:0 文字列Fを16進数として整数に変換:15 |
指定した通り、文字列から整数に変換可能なものは変換されていることが確認できました!
まとめ:to_iメソッドを使ってみよう!
以上がto_iメソッドについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント