こんにちは!エンジニア兼ライターのヤマシタです。
Rubyにはさまざまな文字列操作のメソッドが用意されています。
プログラミングをする上で、
「文字列の末尾の文字を取り除くにはどうすればいいの?」
などといった処理が必要な場合もあります。
そこでここでは、
【実践】chopメソッドの使い方
【実践】chopメソッドの用途
【実践】破壊的メソッドchop!メソッドの使い方
【発展】chopの関連メソッド
などにについて解説していきます!
文字列に末尾を削除する処理は、実際の開発の現場でもよく使われますので、使い方をよく覚えておきましょう!
chopメソッドとは
chopメソッドは、文字列の末尾の文字をとりのぞいた文字列を取得したい場合に使用するメソッドです。
chopメソッドは以下のように記述します。
文字列.chop
末尾が改行コード「\n(LR)」「\r\n(CR+LF)」の場合は、改行コードが削除されます。
次項よりchopメソッドの使い方を詳しく見ていきましょう。
chopメソッドの使い方
chopメソッドの基本
以下のサンプルでは、chopメソッドを使用して文字列の末尾を取り除いています。
サンプルプログラム:
str1 = "samruai" str2 = "engineer" str3 = "blog" puts str1.chop puts str2.chop puts str3.chop
実行結果:
samrua enginee blo
このように文字列の末尾が取り除かれました。
結局どのような用途で使うの?
chopメソッドは文字列の末尾の1文字を削除しますが、具体的にどのような用途で使うのでしょうか?
たとえば、先述したようにchopメソッドは改行文字を取り除くことができるため、ファイルなどを読み込んで末尾の改行コードを取り除きたい場合に使用します。
サンプルプログラム:改行コードを削除
str1 = "samruai\n" str2 = "engineer\r\n" str3 = "blog\r" puts str1.chop puts str2.chop
実行結果:
samruai engineer blog
このように改行コードが取り除かれます。
また、文字列末尾の不要なセパレータ(カンマ、スペース)などを削除したい場合にも使われます。
サンプルプログラム:セパレータを削除
str1 = "samruai," str2 = "engineer " str3 = "blog:" puts str1.chop puts str2.chop puts str3.chop
実行結果:
samruai engineer blog
このように不要なセパレータが削除されました!
chop!メソッドの使い方
chopメソッドは元の文字列に影響を与えませんが、「!」が付加されたchopメソッドを使用すると、元の文字列が変更されます。
このように元の値に影響を及ぼすメソッドのことをRubyでは破壊的メソッドと呼びます。
破壊的メソッドはメソッドに「!」が付加されています。
サンプルプログラム:chop!の使い方
str1 = "samruai," str2 = "engineer " str3 = "blog:" str1.chop! str2.chop! str3.chop! puts str1 puts str2 puts str3
実行結果:
samruai engineer blog
このように破壊的メソッドchop!の場合は元の文字列オブジェクトが変更されていることがわかりますね!
- 元の値を残して置きたい場合はchop
- 元の値を変更したい場合はchop!
と覚えておきましょう。
関連メソッド
Rubyのメソッドにはchopメソッドと似たような処理として、chomp・strip・gsubなどがあります。
それぞれのメソッドの使い方については、以下の記事で詳しく解説しています!
まとめ
ここでは、文字列の末尾を削除するchopメソッドについて、
- chopメソッドとは
- chopメソッドの使い方
- chopメソッドの用途
- 破壊的メソッドchop!メソッドの使い方
- chopの関連メソッド
などについて解説しました。
文字列の末尾を削除したいとき、chopメソッドは非常に便利ですので使い方についてはよく理解しておきましょう。
もしchopメソッドの使い方を忘れてしまったら、この記事を思い出してくださいね!