はじめてのRuby!each_lineメソッドの使い方まとめ

こんにちは! エンジニアのヤマギシです。

文字列を扱っていると、文字列の改行コードを削除したり、文字列を分割したい場合もあります。

「文字列から改行コードを取り除きたい」

そこで、今回はRubyのeach_lineについてわかりやすく解説していこうと思います。


each_lineの概要
each_lineの書き方や使い方
文字列のさまざまな分割方法

each_lineについて初心者でも理解できるようにわかりやすく解説していますので、ぜひ参考にしてください。

目次

each_lineとは

each_lineメソッドとは、文字列を1行ずつ読み込み、文字列の改行を取り除いてくれるメソッドです。

ただ、実際に使用するには文字列操作だったりeachメソッド、ヒアドキュメントなどについても理解しておかなくてはなりません。

eachメソッドの概要や書き方などについてはこちらの記事をご参照ください。

eachメソッドはRubyで繰り返し処理を実行するにあたり、基本的かつよくとても使用するメソッドの一つなのでしっかりと覚えておきましょう!

each_lineを実際に使ってみよう

では、さっそくeach_lineメソッドの解説をしていこうと思います。

# ヒアドキュメント
St = <<'EOS'
aaa
bbb
ccc
EOS

# each_lineメソッド
St.each_line do |ブロック変数|
  処理
end

こちらがeach_lineメソッドを使うための型です。

まず、一番上にヒアドキュメントという書き方でそれぞれの文字列をStに格納してあげます。

ヒアドキュメントは改行コード含め文字列などのデータを扱いたいときに使います。

 

「<<」という識別子を使い、その後ろにヒアドキュメントの開始と終了を表すEOS(End Of String)とEOL(End Of Line)を書くことで機能します。

ちなみに、EOSとEOLはヒアドキュメントの習わしで使っているだけであって、ヒアドキュメントの開始と終了は特に指定はないのでEOSやEOLでなくてもかまいません。

ただ、開始と終了は同じ文字列にしてあげる必要がありますのでご注意ください。

ここで前準備は完了で、その後each_lineメソッドで処理を行う流れとなっております。

each_lineメソッドでは、ヒアドキュメントで使ったStにそれぞれの文字列および改行コードが格納されているので、上記のような書き方で結果を出力します。

ブロック変数は任意の文字列でかまいません。

では実際のサンプルコードを見ていきましょう!

json = <<'EOS'
PHP
Ruby
JavaScript
EOS

json.each_line do |line|
  p line.chomp
end

[出力結果]

"PHP"
"Ruby"
"JavaScript"

まず、ヒアドキュメントの書き方でjsonへそれぞれデータを格納しています。

その後、each_lineメソッドで処理を行っております。

処理の箇所にchompというメソッドを使用しております。

こちらは本来、表示されない文字である改行コードを取り除いて表示します。

もしchompメソッドを使用しない場合ですと、

"PHPn"
"Rubyn"
"JavaScriptn"

このように改行コードの『n』も出力されてしまいます。

デフォルトの状態ですと『n』は改行文字として判断されないためchompメソッドを使う必要があります。

chompメソッドは、ヒアドキュメントやeach_lineメソッドと併せてよく使うので覚えておきましょう!

文字列のさまざまな分割方法

さて、これまで

  • each_lineメソッド
  • ヒアドキュメント
  • chompメソッド
  •  

    などについて学んできました。

    ただ、今回ご紹介したeach_lineメソッドについては少し応用的な要素が強いです。

    そこで、こちらの記事で基本からさまざまな分割方法をご紹介しております。

    具体的には、以下のような内容を解説していますのでぜひご覧になってください。

    • 基本的な文字列
    • 改行で分割
    • 空白で分割
    • 一文字ずつ分割
    • 正規表現で分割
    • 分割数を制限

    まとめ

    さていかがでしたでしょうか。

    今回はeach_lineメソッドを中心にヒアドキュメントやchompメソッドを解説してきました。

    each_lineメソッドはフォームなどで入力した改行入りの文字列を一行ずつ区切ってDBに入れたりする際によく使います。

    もちろんヒアドキュメントやchompメソッドもセットで使う機会が多いので、実際に使ってみてくださいね。

    この記事を書いた人

    【プロフィール】
    DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
    累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
    【専門分野】
    IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

    目次