読者です 読者をやめる 読者になる 読者になる

Rubyで文字列を数値に変換してもよいか判別する方法

Ruby

Rubyでは以下のようにして文字列を数値に変換することができます。

"5".to_i
# => 5

数値に変換できないような文字列にto_iをすると0になります。

"string".to_i
# => 0

プログラミング言語がこのような挙動をすることは問題ないと思うのですが、オリジナルの文字列が数値に変換可能だったかそうでないかがわかりません。判別する必要があるならば、正規表現を使うのが簡単です。文字列が0から9までの数字だけで構成されているか判別する正規表現は以下のようになります。

if string =~ /\d+/
  # do something...
end

参考:正規表現 - Rubyリファレンスマニュアル