日別アーカイブ: 2022年10月18日

TIPS(Ruby:文字列と数値が混ざったものを1行でそれぞれの変数に入力値を受け取りたい)

目標:プログラミング問題でよくある文字列と数値が混ざったものを1行で入力値を受け取りたい

入力例

3
Tanaka 24
Sato 35
Suzuki 12

実践

#最初の3を変数に代入する

n = gets.to_i

#新たな変数に空の配列を多重代入する。
name,age = [],[]

#n回 (3回)  i == 0 のとき、つまり最初の文字列をnameに文字列として代入
#半角スペースを挟んだ数値をageに数値として代入する。
n.times.map { gets.split.map.with_index { |val, i| i == 0 ? name << val : age << val.to_i } }

#nameとageに期待していたように入っているか確認する。
p name, age

https://paiza.io/projects/4T8pWrwlF0UOH0goc0gopw

↑こちらにコピペして「実行」で確認できます。
↓このような出力結果になっていて、nameに文字列がageに数値が入っていることが確認できます。