[解決済み] Rubyで安全な整数パース
2022-04-24 17:19:29
質問
ある文字列、例えば
'123'
これを整数に変換したい。
123
.
を単純にできることは知っています。
some_string.to_i
に変換されますが、これは
'lolipops'
を
0
というのは、私が考えている効果ではありません。無効なものを変換しようとしたときに、私の顔面を吹き飛ばすような、素敵で痛々しい
Exception
. そうでないと、有効な
0
と、まったく数字でないものがあります。
EDITです。 正規表現のトリックを使わない、標準的な方法を探していました。
どのように解決するのですか?
Rubyには、この機能が組み込まれています。
Integer('1001') # => 1001
Integer('1001 nights')
# ArgumentError: invalid value for Integer: "1001 nights"
の回答にもあるように
ジョセフ・ペコラロ
で始まるような10進数でない有効な文字列に注意する必要があります。
0x
は16進数であり
0b
は2進数で、0から始まるもっと厄介な数字は8進数として解析される可能性があります。
Ruby 1.9.2ではradixの第2引数にオプションが追加され、上記の問題を回避できるようになりました。
Integer('23') # => 23
Integer('0x23') # => 35
Integer('023') # => 19
Integer('0x23', 10)
# => #<ArgumentError: invalid value for Integer: "0x23">
Integer('023', 10) # => 23
関連
-
[解決済み] RVM は関数ではないので、'rvm use ...' でルビーを選択してもうまくいきません。
-
[解決済み] Rubyのswitch文の書き方
-
[解決済み] JavaScriptで文字列を整数に変換する方法は?
-
[解決済み] Pythonで整数から文字列に変換する
-
[解決済み] Rubyで配列に値が存在するかどうかを確認する方法
-
[解決済み] Rubyからシェルコマンドを呼び出す方法
-
[解決済み] Rubyでnilとemptyとblankを理解する方法
-
[解決済み] Rubyで文字列を小文字・大文字に変換する方法
-
[解決済み] Rubyのattr_accessorとは何ですか?
-
[解決済み] Rubyで文字列が部分文字列を含むかどうかをチェックする方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】rubyの1e18という数字は何を意味するのか?
-
[解決済み】macOSでrbenvをアンインストールする方法とは?
-
[解決済み] -bashです。/Users/myname/.bash_profile: パーミッションが拒否されました
-
[解決済み] Rubyでファイル名を変更するには?
-
[解決済み] Rubyでnil値をマッピングして削除する方法
-
[解決済み] Ruby の .reject! と .delete_if の比較
-
[解決済み] gemをインストールできない - makeが内部または外部のコマンド操作可能なプログラムまたはバッチファイルとして認識されない。
-
[解決済み] Ruby 2.0.0p0 IRB警告。"DLは非推奨です。Fiddleをお使いください。"
-
ERRORの問題を解決します。rails のインストール時に gem ネイティブ拡張のビルドに失敗しました。
-
[解決済み】Rubyの正規表現における「◎」「△」「◇」の違いについて