Rubyのsqueezeとsqueeze!メソッド - 文字列の効率的な圧縮
今回はRubyのsqueeze
とsqueeze!
メソッドについて解説します。
これらのメソッドは、文字列内の連続する重複文字を単一の文字に圧縮します。
この記事では、squeeze
とsqueeze!
メソッドの機能と使い方を詳しく解説し、実際のコード例を通じてその応用方法を紹介します。
これらのメソッドを使いこなすことで、Rubyでの文字列操作がより効率的かつ柔軟になります。
squeezeメソッドの使い方
squeeze
メソッドは、文字列内の連続する重複文字を単一の文字に圧縮します。
このメソッドは、特にファイルからの入力やユーザー入力の整形に有用です。
例えば、"Helloooo, Wooooorld!".squeeze
を実行すると、"oooo"と"oooo"がそれぞれ"o"に圧縮され、結果は"Hello, World!"になります。
ソースコード例
1 2 3 4 5 6 7 8 9 |
class Program def self.main str = "Helloooo, Wooooorld!" result = str.squeeze puts result end end Program.main |
出力結果
Hello, World!
KindleUnlimited会員であれば、全ての本をご覧頂けます。 配列、イテレータ、ブロックを理解すれば、Rubyプログラミングの世界が変わる 第1版
squeeze!メソッドの使い方
squeeze!
メソッドはsqueeze
メソッドの破壊的バージョンで、元の文字列自体を変更します。
文字列内の連続する重複文字が単一の文字に圧縮され、その結果が元の文字列に直接適用されます。
例えば、str = "Helloooo, Wooooorld!"; str.squeeze!
を実行すると、str
が直接変更され、"Hello, World!"になります。
ソースコード例
1 2 3 4 5 6 7 8 9 |
class Program def self.main str = "Helloooo, Wooooorld!" str.squeeze! puts str end end Program.main |
出力結果
Hello, World!
squeezeメソッドの応用例
squeeze
メソッドは、特定の文字に対してのみ操作を行うこともできます。たとえば、特定の文字の連続を探して圧縮する場合などに有効です。
次の例では、文字列内の特定の文字"o"の連続を圧縮する方法を示します。
ソースコード例
1 2 3 4 5 6 7 8 9 |
class Program def self.main str = "Sooooo many oooooos!" result = str.squeeze("o") puts result end end Program.main |
出力結果
So many oos!
squeeze!メソッドの応用例
squeeze!
メソッドは、元の文字列を直接変更するため、繰り返しの操作が必要な場合に特に便利です。たとえば、データクレンジングやログファイルの整理などに使用できます。
次の例では、ログファイルの整理にsqueeze!
メソッドを使う方法を示します。
ソースコード例
1 2 3 4 5 6 7 8 9 |
class Program def self.main log_entry = "Errorrrrrrr occurred!" log_entry.squeeze!("r ") puts log_entry end end Program.main |
出力結果
Error occurred!
使用時の注意点
squeeze!
メソッドを使用する際には、元の文字列が直接変更されることに注意が必要です。
不用意に使用すると、元のデータを失ってしまう可能性があります。
また、squeeze
メソッドは元の文字列を変更しないため、変更を反映させるには結果を新しい変数に代入する必要があります。
まとめ
Rubyのsqueeze
とsqueeze!
メソッドは、文字列内の重複する文字を効率的に圧縮し、文字列を整理するのに非常に役立ちます。
この記事を通じて、これらのメソッドの基本的な使用法、応用例、および使用時の注意点を理解していただけたことを願います。
最後まで読んで頂き、ありがとうございました。少しでもお役に立てたなら幸いです!