Caution
お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。
文字列.split
文字列を区切り文字で分割して配列に変換するメソッドです。CSV解析やテキスト処理でよく使われます。
構文
# 区切り文字で分割して配列を返します。 文字列.split(区切り文字) 文字列.split(区切り文字, 上限数) # 1文字ずつ分割して配列を返します。 文字列.chars # 1バイトずつ分割して整数の配列を返します。 文字列.bytes # 行ごとに分割して配列を返します。 文字列.lines
メソッド一覧
| メソッド | 概要 |
|---|---|
| split(sep) | 区切り文字で文字列を分割し、配列を返します。引数を省略すると空白で分割し、連続する空白をまとめて処理します。 |
| split(sep, n) | 第2引数に最大分割数を指定できます。超過した部分は末尾の要素にまとめられます。 |
| chars | 文字列を1文字ずつに分割した配列を返します。 |
| bytes | 文字列を1バイトずつ分割し、各バイトの整数値の配列を返します。 |
| lines | 文字列を行ごとに分割した配列を返します。改行コードは各要素に含まれます。 |
サンプルコード
# カンマで分割します。
csv = "田中,鈴木,佐藤,高橋"
puts csv.split(",").inspect # ["田中", "鈴木", "佐藤", "高橋"]
# 空白で分割します(引数省略時)。
文章 = " Hello Ruby World "
puts 文章.split.inspect # ["Hello", "Ruby", "World"]
# 分割数を制限します。
データ = "2024:03:15"
puts データ.split(":", 2).inspect # ["2024", "03:15"]
# chars で1文字ずつに分割します。
単語 = "Ruby"
puts 単語.chars.inspect # ["R", "u", "b", "y"]
# lines で行ごとに分割します。
複数行 = "1行目\n2行目\n3行目"
複数行.lines.each do |行|
puts 行.chomp # 改行を除去して出力します。
end
# 正規表現で分割できます。
テキスト = "one1two2three3four"
puts テキスト.split(/\d/).inspect # ["one", "two", "three", "four"]
概要
『split』は文字列を配列に変換する最も基本的なメソッドです。引数なしで呼び出すと、連続する空白を1つの区切りとして扱い、先頭・末尾の空白も自動的に除去されます。
末尾の空文字列要素は自動的に除去されます。これを防いで空文字列要素を残したい場合は、第2引数に『-1』を指定してください(例: 『"a,,b,".split(",", -1)』)。
分割した配列を結合して文字列に戻すには『Array#join』を使用してください。文字列の一部を切り出すには『slice / []』を使用してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。