Rubyまとめex(標準入力)

Rubyで標準入力から値を受け取る方法 2022年版

はじめに

この記事は、プログラミング問題などでよく見られる、標準入力から値を受け取る方法をまとめたものです。

前提

使用する言語はRubyです。

一行に1要素のとき(文字列)

標準入力

Ruby

標準入力を受け取るコード

string = gets

出力するコード

p string

出力結果

"Ruby"

一行に半角スペース刻みで要素があるとき(文字列)

標準入力

Ruby PHP Python

標準入力を受け取るコード

strings = gets.split

出力するコード

p strings

出力結果

["Ruby", "PHP", "Python"]

splitを使用することで、3つの要素をそれぞれ別のものとして配列に格納しています。

※splitの使い方
split(‘ ‘)としている記事などもありますが、
半角スペース刻みの入力値の場合は引数(‘ ‘)を指定しなくても問題ありません。

つまりsplit(‘ ‘) ≒ split (※半角スペース刻みの入力値のときのみです)

複数行に一つずつ要素が存在するとき(文字列)

標準入力

Ruby
PHP
Python

標準入力を受け取るコード

strings = readlines.map(&:chomp)
#またはこちら(パフォーマンス的に推奨)
strings = readlines(chomp: true)

出力するコード

p strings

出力結果

["Ruby", "PHP", "Python"]

複数行に半角スペース付きで要素が複数存在するとき(文字列)

標準入力

Ruby PHP Python
Java C# C++

標準入力を受け取るコード

strings = readlines.map{ |i| i.split.map(&:chomp)}
# またはこちら(推奨)
strings = readlines.map(&:split)

出力するコード

p strings

出力結果

[["Ruby", "PHP", "Python"], ["Java", "C#", "C++"]]

標準入力

Ruby PHP Python
Java C# C++

入力値が数値の場合

一行に数値がひとつのとき

標準入力

123

標準入力を受け取るコード

number = gets.to_i

出力するコード

p number

出力結果

123

一行に半角スペース刻みで数値があるとき

標準入力

1 2 3

標準入力を受け取るコード

numbers = gets.split.map(&:to_i)

出力するコード

p numbers

出力結果

[1, 2, 3]

複数行に一つずつ数値が存在するとき

標準入力

1
2
3

標準入力を受け取るコード

numbers = readlines.map(&:to_i)

出力するコード

p numbers

出力結果

[1, 2, 3]

複数行に半角スペース刻みで要素が存在するとき

標準入力

1 2 3
4 5 6

標準入力を受け取るコード

numbers = readlines.map{ |i| i.split.map(&:to_i) }

出力するコード

p numbers

出力結果

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です