Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】String::each_line()メソッドの使い方

each_lineメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

each_lineメソッドは、レシーバである文字列を行単位で分割し、それぞれの行に対する処理を実行するメソッドです。このメソッドは、ファイルの内容を読み込んだ文字列や、複数行にわたるテキストデータを扱う際に非常に有用です。

通常、行の区切りは改行文字(\n)と見なされますが、引数として区切り文字(separator)を指定することで、任意の文字列を区切りとして行を分割できます。たとえば、特定の記号や単語を区切りとして文字列を処理したい場合に活用できます。

ブロックが与えられた場合、each_lineメソッドは文字列を区切り文字で分割し、分割された各行を引数としてブロックに渡し、ブロック内の処理を順に実行します。この際、各行には通常、区切り文字が含まれた状態で渡されます。ブロックを省略した場合、このメソッドはEnumeratorオブジェクトを返します。これにより、eachメソッドやmapメソッドなど、Enumeratorが提供する様々なメソッドを使って、行ごとに柔軟な処理をチェーンして実行することが可能になります。

このメソッドを利用することで、ログファイルの解析や設定ファイルの読み込み、あるいはWebスクレイピングで得られたテキストデータから必要な情報を抽出するといった、行単位での処理が必要な多様なプログラミングタスクを効率的かつ簡潔に記述できます。Ruby 3では、文字列処理の基本的ながら強力なツールの一つとして、多くの場面で活用されています。

構文(syntax)

1"line1\nline2\nline3".each_line do |line|
2  puts line
3end

引数(parameters)

separator = $/, chomp: false

  • separator = $/ : 行の区切り文字を指定する文字列。デフォルトは改行文字($/)です。
  • chomp: false: 各行の末尾から区切り文字を取り除くかどうかを指定する真偽値。デフォルトはfalseです。

戻り値(return)

String (self) または Enumerator

String#each_line メソッドは、文字列を改行コードで区切った各行をブロックに渡して処理します。ブロックが与えられなかった場合は、各行を順番に生成する Enumerator オブジェクトを返します。

関連コンテンツ

関連プログラミング言語