Tbpgr Blog

Ruby プログラマ tbpgr(てぃーびー) のブログ

Ruby | String | chomp

概要

String#chomp(rs = $/) -> String

詳細

self の末尾から rs で指定する改行コードを取り除いた文字列を生成して返す。
ただし、rs が "\n" ($/ のデフォルト値) のときは、 実行環境によらず "\r", "\r\n", "\n" のすべてを改行コードとみなして取り除きます。
rs に空文字列 ("") を指定した場合は「パラグラフモード」になり、
末尾の連続する改行コードをすべて取り除きます。

サンプルコード
hoge1 = "hoge\n"
hoge2 = "hoge\r\n"
hoge3 = "hoge\r"

puts "chomp()"
(1..3).each do |i|
  eval "p hoge#{i}"
  eval "p hoge#{i}.chomp"
  puts 
end

puts "chomp('\\r')"
(1..3).each do |i|
  eval "p hoge#{i}"
  eval "p hoge#{i}.chomp(\"\\r\")"
  puts 
end

puts "Paragraph Mode"
hoge =<<-EOS
hoge
hige

hage


huge




hege



EOS

puts "chomp('')"
p hoge
p hoge.chomp("")
p hoge.chomp()

出力

chomp()
"hoge\n"
"hoge"

"hoge\r\n"
"hoge"

"hoge\r"
"hoge"

chomp('\r')
"hoge\n"
"hoge\n"

"hoge\r\n"
"hoge\r\n"

"hoge\r"
"hoge"

Paragraph Mode
chomp('')
"hoge\nhige\n\nhage\n\n\nhuge\n\n\n\n\nhege\n\n\n\n"
"hoge\nhige\n\nhage\n\n\nhuge\n\n\n\n\nhege"
"hoge\nhige\n\nhage\n\n\nhuge\n\n\n\n\nhege\n\n\n"