LoginSignup
4
2

More than 1 year has passed since last update.

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

Last updated at Posted at 2022-08-31

はじめに

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

前提

使用する言語は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++"]]

入力値が数値の場合

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

標準入力

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]]
4
2
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2