.net column
.NET開発者のためのブログメディア

Rubyのchompで改行を削除する方法とは?削除以外の改行指定も解説

 
Rubyのchompで改行を削除する方法とは?削除以外の改行指定も解説
基本情報技術者試験の試験対策はこちら>>
SE
Rubyで文字列の途中で改行したり、改行コードをはどうやって削除するのですか。
PM
Windowsでは改行コードは とします。削除するにはchomp!やchopなどで削除します。

Rubyでの改行コードの扱い方とは?


今回は、Rubyでの改行コードの扱い方について説明します。
文字列の途中で改行する方法や改行コードの削除方法について紹介します。

改行コードはOSによって異なります。改行コードの統一方法についても紹介します。
Rubyでの改行コードの扱い方に興味のある方はぜひご覧ください。

Rubyでの改行の出力

Rubyで文字列の途中で改行する方法を紹介します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

Windowsの場合、改行コードは\r\nです。
文字列の途中に改行コードを記述すると、文字列の途中で改行できます。

Rubyのchompで改行を削除する方法4つ

Rubyのchompを使い改行を削除する方法について、以下4つを紹介します。

1. chompで改行コード削除
2. chomp!で改行コード削除
3. each_lineとchompの併用
4. readlinesによる読み込み文字列とchomp

1:chompで改行コード削除

Rubyでは、chompメソッドを利用して行末の改行コードを削除できます。

実際のソースコードを見てみましょう。


実行結果は以下のようになります。


行末の改行コードが削除されていることが分かります。

chompメソッドは行末が改行コードでなければ削除されません。
実際のソースコードを見てみましょう。


実行結果は以下のようになります。


行末が改行コードでないので、何も削除されていないことが分かります。

このように、Rubyではchompメソッドを利用して行末の改行コードを削除できます。

2:chomp!で改行コード削除

chompメソッドに”!”を付与すると、文字列を直接変更できます。

実際のソースコードを見てみましょう。


実行結果は以下のようになります。


chompメソッドの実行後にstring1を表示しても”line1\r\n”のままですが、chomp!メソッドの実行後にstring2を表示すると”line2″となっています。
chompメソッドに”!”を付与すると、文字列を直接変更していることが分かります。
このようなメソッドを「破壊的メソッド」といいます。

改行コードが無い場合は以下のようになります。


実行結果は以下のようになります。


このように、Rubyではchompメソッドに”!”を付与すると、文字列を直接変更できます。

3:each_lineとchompの併用

Rubyのeach_lineメソッドで改行コードで区切られた複数行の文字列を1行ずつ処理することができます。
各行の文字列の末尾に改行コード付け、各行の改行コードをchompメソッドで削除します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

このように、複数行の改行がある文字列をeach_lineで1行ずつ処理し、chompメソッドで改行を削除することができます。

4:readlinesによる読み込み文字列とchomp

File.readlinesメソッドはファイルからデータを文字列の配列として読み込むことができます。
Rubyにおける、readliesによりテキストファイルを読み込み文字列の配列にして、文字列の配列の各要素である、各行の文字列末尾の改行コードをchompメソッドで削除してみましょう。

以下のファイルを用意してください。
サンプルテキストファイル: example.txt

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

このようにFile.readliesメソッドでテキストファイルを読み込み、各行の文字列の末尾の改行コードをchompメソッドで削除できます。

Rubyのchompとchomp!の比較

Rubyのchompメソッドは改行コードがなければ文字列をそのまま返しましたが、chomp!メソッドはnilを返す点が違います。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

このような違いがあるので、後続で処理したい内容を踏まえて使い分けましょう。

Rubyでchomp以外で改行を削除する方法3つ

文字列から改行コードを削除するメソッドは、chomp以外にchop、strip、gsubなどがあります。今回は以下3つを紹介します。

1. chopで改行コード削除
2. stripで改行コード削除
3. gsubで改行コード削除

どのような違いがあるかを見ていきましょう。

1:chopで改行コード削除

Rubyのchopメソッドは行末の1文字を削除します。つまり、改行コードでなくても削除します。
また、!を付与すれば破壊的メソッドになります。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

このように、Rubyではchopメソッドを利用しても行末の改行コードを削除できます。
しかし、行末が改行コードでない場合は意図しない削除となってしまうので注意が必要です。

2:stripで改行コード削除

Rubyのstripメソッドは文字列の前後の改行コード、半角スペース、タブを削除します。また、!を付与すれば破壊的メソッドになります。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

このように、Rubyのstripメソッドを利用すれば、改行コードを削除できます。

3:gsubで改行コード削除

Rubyのgsubメソッドは文字列を置換でき、また改行コードを空文字に置換することで改行コードを削除できます。!を付与すれば破壊的メソッドになります。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

このように、Rubyのgsubメソッドを利用すれば、改行コードを削除できます。

Rubyでの削除以外の改行指定

これまでは削除について紹介しましたが、削除以外の改行指定についても以下2つを紹介します。

1. 改行コードの統一
2. 改行でsplit

改行コードの統一

改行コードはOSによって異なりますので、改行コードを統一する方法を紹介します。ここでは、\r\n, \r, \n をすべて \n に統一します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

\r\n, \r, \n がすべて \n に統一されていることが分かります。

このように、Rubyのgsubメソッドを利用すれば、改行コードを統一できます。

改行でsplit

改行コードを統一し、splitする例を紹介します。

実際のソースコードを見てみましょう。

実行結果は以下のようになります。

\nでsplitすることで配列に格納されていることが分かります。

このように、改行できます。

SE
改行コードの削除の仕方はいろいろあるのですね。
PM
ただ、改行コードはOSによって異なりますので、 , , はすべて に統一するようにしましょう。

Rubyで改行コードを使ってみよう

いかがでしたでしょうか。今回は、Rubyでの改行コードの扱い方について説明しました。

文字列の途中で改行する方法や改行コードの削除方法について紹介しましたが、改行コードはOSによって異なります。そこで改行コードの統一方法や、改行でsplitする方法についても紹介しました。

実際にご自身でRubyのソースコードを書いて、理解を深めてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags