スライドショー

はじめてのRuby!to_iメソッドで文字列を整数に変換する

Rubyには数値文字列や指定した進数に変換するのに便利なto_iメソッドがあります。

「数値文字列を整数に変換したい」
「配列の数値文字列を全て整数に変換したい」
「数値文字列をx進数に変換したい」

といった方に向けて、この記事ではto_iメソッドについて以下の内容で解説していきます!


・to_iメソッドとは
・数値文字列を整数に変換する方法
・配列の数値文字列を整数に変換する方法
・10進数以外に変換する方法

ここではto_iメソッドの使い方についてわかりやすく解説していますので、ぜひ参考にしてください。

to_iメソッドとは

to_iは一言で言うと「数字文字列を10進数の整数に変換するためのメソッド」です。

to_iメソッドの書き方

# 10進数を整数に変換
文字列オブジェクト.to_i

# 何進数か指定する
文字列オブジェクト.to_i(進数)

to_iメソッドは引数を指定しないと、数値文字列を10進数に変換します。

引数を指定することで何進数に変換するか指定することができます。

数値文字列を整数に変換する

ここでは数値文字列をto_iメソッドで整数に変換する方法を紹介します。

以下のサンプルをご覧ください。

str1 = "20"
str2 = "5 apples."
str3 = "orange"

p str1.to_i
p str2.to_i
p str3.to_i

実行結果:

20
5
0

このようにto_iメソッドは文字列が数値と見なせる場合は整数として変換します。

数値を含んだ文字列の場合、先頭が数値とみなせれば、数値部分を切り取って整数に変換します。

また、文字列が数値とみなされない場合は0を返します。

配列の数値文字列を整数に変換する

to_iメソッドは文字列String型で使用できるメソッドのため、配列の数値文字列はそのまま指定してもエラーが発生します。

array = ["0", "1", "2", "3", "4", "5"]

p array.to_i

実行結果:

Main.rb:13:in `<main>': undefined method `to_i' for ["0", "1", "2", "3", "4", "5"]:Array (NoMethodError)

そのため、配列の数値文字列を変換する場合は以下のように記述します。

array = ["0", "1", "2", "3", "4", "5"]

p array.map!{|x| x.to_i}

実行結果:

[0, 1, 2, 3, 4, 5]

このサンプルでは配列に対してmapメソッドで繰り返し処理を実行し、ブロックの処理で要素1つずつに対してto_iメソッドで整数に変換しています。

10進数以外に変換する

to_iメソッドは引数を指定することで10進数の整数以外の数値に変換することができます。

たとえば、引数に2を指定した場合は2進数、8を指定した場合は8進数に変換できます。

以下のサンプルをご覧ください。

# 2進数に変換
str1 = "10101111"
puts str1.to_i(2)

# 8進数に変換
str2 = "371"
puts str2.to_i(8)

# 10進数に変換
str3 = "222"
puts str3.to_i(10)

# 16進数に変換
str4 = "0xFF"
puts str4.to_i(16)

実行結果:

175
249
222
255

このように引数で何進数に変換するか指定することで、指定したx進数に変換することができます。

まとめ

ここでは、数値文字列を整数または指定した進数に変換できるto_iメソッドについて、以下の内容で解説しました。

  • to_iメソッドの使い方
  • 数値文字列を整数に変換する方法
  • 配列の数値文字列を整数に変換する方法
  • 10進数以外に変換する方法

to_iメソッドを使用すれば、簡単に文字列を整数に変換できますので使い方については理解しておきましょう。

もし、to_iメソッドの使い方を忘れてしまったら、この記事を思い出してくださいね!

LINEで送る
Pocket

無料でSEからWebエンジニアへ転職しませんか?



侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、

  • システムエンジニアという職業だけどコードが書けない
  • 事務作業が多くスキルがないため将来が不安
  • スクールに通うと完全未経験者と同じスタートになるからレベルが合わない
という、すでに知識があるSEならではのお悩みがあることに気づきました。そんな方におすすめなのが、弊社の「転職コース 」です。

弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。さらにこちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。

既に知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。

まずは無料体験レッスンを予約する

書いた人

ヤマシタ

エンジニア歴10年のフリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、200本以上の執筆経験があります。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説