文字列.strip / lstrip / rstrip / chomp / chop
| 対応: | Ruby 1.8(2003) |
|---|
文字列の前後の空白や末尾の改行・文字を除去するメソッドです。ユーザー入力の正規化によく使われます。
構文
# 前後の空白(スペース・タブ・改行)を除去します。 文字列.strip # 先頭の空白のみ除去します。 文字列.lstrip # 末尾の空白のみ除去します。 文字列.rstrip # 末尾の改行コードを除去します。 文字列.chomp 文字列.chomp(区切り文字) # 末尾の1文字を除去します。 文字列.chop
メソッド一覧
| メソッド | 概要 |
|---|---|
| strip | 文字列の先頭と末尾にある空白文字(スペース・タブ・改行)を除去した新しい文字列を返します。 |
| lstrip | 先頭の空白文字のみを除去します。 |
| rstrip | 末尾の空白文字のみを除去します。 |
| chomp | 末尾の改行コード(『\n』『\r\n』『\r』)を除去します。引数で除去する文字列を指定できます。 |
| chop | 末尾の1文字を無条件に除去します。末尾が『\r\n』の場合は2文字除去します。 |
| strip! | 元の文字列を直接変更します(破壊的メソッド)。 |
サンプルコード
sample_string_strip_chomp.rb
# strip で前後の空白を除去します。
input = " 八神庵 "
puts input.strip # 八神庵
puts input.lstrip # 八神庵 (末尾スペースは残る)
puts input.rstrip # 八神庵(先頭スペースは残る)
# chomp で末尾の改行を除去します。
line = "データ\n"
puts line.chomp # データ(改行なし)
# chomp に引数を指定して特定の文字列を除去します。
text = "Hello!!!"
puts text.chomp("!") # Hello!!(最後の1文字分だけ)
# chop で末尾の1文字を除去します。
word = "Rubys"
puts word.chop # Ruby
# ファイルの各行から改行を除去する処理です。
line_data = ["Kiryu\n", "Majima\n", "Akiyama\n"]
cleaned = line_data.map(&:chomp)
puts cleaned.inspect # ["Kiryu", "Majima", "Akiyama"]
# フォーム入力値の正規化に活用できます。
email = " iori@yagami-style.jp "
normalized = email.strip.downcase
puts normalized # iori@yagami-style.jp
ruby string_strip_chomp.rb 八神庵 八神庵 八神庵 データ Hello!! Ruby ["Kiryu", "Majima", "Akiyama"] iori@yagami-style.jp
概要
『strip』はフォーム入力値の前後の空白を取り除く際によく使われます。これらのメソッドはすべて元の文字列を変更せず、新しい文字列を返します。
『chomp』と『chop』の違いに注意してください。『chomp』は末尾が改行コードの場合のみ除去しますが、『chop』は改行の有無にかかわらず末尾の1文字を削除します。予期しない文字削除を避けるため、通常は『chomp』の使用を推奨します。
文字列の置換には『sub / gsub』を、文字列の分割には『split』を使用してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。