Rubyで文字列を改行する方法【初心者向け】

初心者向けにRubyで文字列を改行する方法について解説しています。長い文字列などを扱う際に、改行コードを使うことで改行を行うことができます。OSごとに書き方が違うので、サンプルを見ながら使い方を理解していきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Rubyで文字列を改行する方法について解説します。

Rubyについてそもそもよく分からないという方は、Rubyとは何なのか解説した記事をまずご覧ください。

 

なお本記事は、TechAcademyのWebアプリケーションオンラインブートキャンプの内容をもとに紹介しています。

 

田島悠介

今回は、Rubyに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

文字列を改行する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

文字列を改行する方法

プログラム内で、長文のテキストデータを出力する際、あるいは、ログなどで改行を行いたい場合などのケースがあるかもしれません。

その際に、改行する際はどのように行えば良いかを説明します。

ターミナルなどで改行を行う場合、 文中に `改行コード` を付与することで改行ができます。

改行コードとは、その名の通り、改行を行うコードの事です。

改行コードは、OS毎に異なり、例えばWindowsでは、 `CR+LF(\r\n)` が改行コードとなります。実行するアプリケーションにもよりますが、Windows環境下では以下のように実行する事で、改行が行えます。

puts "SAMPLE1\r\nSAMPLE2"

結果

SAMPLE1
SAMPLE2

OSがUNIX/Linuxの場合、改行コードは `LF(\n)` になります。

puts "SAMPLE1\nSAMPLE2"

結果

SAMPLE1
SAMPLE2

 

OSがMacの場合、改行コードは `CR(\r)` になります。

puts "SAMPLE1\rSAMPLE2"

結果

SAMPLE1
SAMPLE2

ただし、文字列をダブルクォーテーションではなく、シングルクォーテーションで囲んだ場合は、そのまま `\n` などと出力されますので、注意が必要です。

puts 'SAMPLE1\nSAMPLE2'

結果

SAMPLE1\nSAMPLE2

 

実際に書いてみよう

ログを出力するためのサンプルで確認してみましょう。

require "date"

# 日毎のログファイルを準備
file = Date.today.to_s + "_application.log"

# ログの内容を準備
logs = [
  "ERROR: 400 Bad Request",
  "ERROR: 401 Unauthorized",
  "ERROR: 402 Payment Required",
  "ERROR: 403 Forbidden",
  "ERROR: 404 Not Found",
]

# このまま実行した場合、1行のログが出来上がります。
# ERROR: 400 Bad RequestERROR: 401 UnauthorizedERROR: 402 Payment RequiredERROR: 403 ForbiddenERROR: 404 Not Found
File.open(file,"w") do |file|
  logs.each do |log|
    file << log
  end
end

# 改行コードを付与して作成した場合
# ERROR: 400 Bad Request
# ERROR: 401 Unauthorized
# ERROR: 402 Payment Required
# ERROR: 403 Forbidden
# ERROR: 404 Not Found

File.open(file,"w") do |file|
  logs.each do |log|
    file << log + "\n"
  end
end

# 追加でメッセージを入れ、文中で改行する場合
# 結果
# ERROR:
# No Such File or Directory
# StackTrace:

File.open(file,"w") do |file|
  file << "ERROR:\nNo Such File or Directory \nStackTrace:"
end

 

[PR] Rubyのプログラミングで挫折しない学習方法を動画で公開中

回答してくれたメンター

中廣 誠

職種: WEBエンジニア

過去の開発実績・業務内容:
一部上場企業にて、WEBアプリケーションの受託開発、自社WEBサービス開発、自社ゲーム開発に従事
現在はフリーで活動し、ECサイト開発/運営、課題を解決するためのシステムコンサルタントなどを実施

趣味など
フリーでの活動を期に沖縄へ移住したので、海でのスキンダイビング、釣りなどを趣味にしています。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

TechAcademyでは初心者でも最短4週間でエンジニアになれるRuby on Railsオンラインブートキャンプを開催しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、最短4週間でオリジナルWebサービスを開発することが可能です。

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。