Menu
Coddy logo textTech

chomp メソッド

CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 30/88。

前のレッスンで、ユーザーがEnterキーを押したときに gets が改行文字を含んでいるのを見ました。chomp メソッドは、文字列からこの末尾の改行を取り除きます。

name = gets.chomp
puts "Hello, #{name}!"

ユーザーが「Alice」と入力すると、出力はクリーンになります:

Hello, Alice!

chomp がないと、感嘆符の前に不要な空行が入ってしまいます。上記のように chompgets に直接繋げることができ、これは Ruby プログラムで見られる最も一般的なパターンです。

p を使用して違いを確認しましょう:

with_newline = gets
without_newline = gets.chomp

p with_newline      # "Ruby\n"
p without_newline   # "Ruby"

chomp メソッドは、末尾の改行のみを取り除きます。文字列内の他の文字には影響しません。今後は、ユーザー入力を読み取る際には通常 gets.chomp を使用することになります。

challenge icon

チャレンジ

簡単

gets.chomp を使用してユーザーから都市名を入力として読み取り、それを city という名前の変数に格納してください。

次に、puts と式展開(string interpolation)を使用して、以下の形式でウェルカムメッセージを出力してください。

Welcome to [city]!

例えば、入力が Tokyo の場合、出力は以下のようになります。

Welcome to Tokyo!

感嘆符(!)は、余分なスペースや空行を入れずに、都市名の直後に表示される必要があります。

チートシート

chomp メソッドは、文字列の末尾にある改行文字を取り除きます。これは、ユーザーが Enter キーを押したときに改行が含まれる gets を使用してユーザー入力を読み取る際に不可欠です。

gets に直接 chomp を連結します:

name = gets.chomp
puts "Hello, #{name}!"

chomp がある場合とない場合の比較:

with_newline = gets        # "Ruby\n"
without_newline = gets.chomp   # "Ruby"

chomp メソッドは末尾の改行のみを削除し、文字列内の他の文字には影響を与えません。

自分で試してみよう

# ユーザーから都市名を読み込む
city = gets.chomp

# TODO: 文字列補間を使用してウェルカムメッセージを出力するコードを以下に記述してください
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン