Posted at

Rubyで標準入力から値を取得するには

More than 1 year has passed since last update.


はじめに

paizaでスキルチェックをやろうと思ったのですが、

サンプルで提示された標準入力からの取得方法が上手くいかずどん詰まってしまいました。。。

その際に使用した別の方法を載せておきます。

※本当はもっと効率の良いやり方があると思いますが。。。


前提

使用する言語はRubyです


1行に1項目のみ存在する場合の取得方法

標準入力

hoge


get_stdin.rb

fline = readlines

p fline

出力結果

["hoge"]


1行にスペース区切りの項目がn個存在する場合の取得方法

標準入力

hoge fuga foo


get_stdin.rb

fline = readlines

fline = fline[0].split(" ")
p fline

出力結果

["hoge","fuga","foo"]


改行コードを含む項目がn行にわたりが存在する場合の取得方法

標準入力

hoge
fuga
foo


get_stdin.rb

fline = readlines

p fline


出力結果

["hoge\n","fuga\n","foo"]

これだけでも取得できますが、上記の通り改行文字が入っているので取り除いちゃいます。


get_stdin.rb

fline = readlines

len = fline.length
i = 0

while i < len
fline[i] = fline[i].chomp
i += 1
end

p fline


出力結果

["hoge","fuga","foo"]

基本的にはこれで何とかなると思います。

ちなみに出力結果をご覧いただくとわかるとおり、標準入力で受け取ったものは文字列なので、

数値項目として扱いたい場合は to_i してください。

標準入力

123


get_stdin.rb

fline = readlines

fline = fline[0].to_i

p fline


出力結果

123