chomp メソッドと chop メソッド

どうも混同しがちなのでまとめておきます。

chomp メソッド

  • 文字列末尾の改行を削除するメソッド
    • \n, \r, \r\n いずれにも対応
  • 破壊的なメソッド chomp! も存在する

chop メソッド

  • 文字列の最後の文字を削除するメソッド
    • ただし、文字列の終端が「\r\n」の場合は2文字削除する
  • 破壊的なメソッド chop! も存在する


簡単にまとめるとこんな感じ。なので、末尾の改行を削除したいっていうときは、chomp を使うのが無難。
ちなみに chomp メソッドは、下記のように引数に空文字列を渡した場合、末尾の連続するすべての改行文字を削除できたりする。

str = "test\r\n\r\n"
p str.chomp('')
→"test"