文字列.split
| 対応: | Ruby 1.8(2003) |
|---|
文字列を区切り文字で分割して配列に変換するメソッドです。CSV解析やテキスト処理でよく使われます。
構文
# 区切り文字で分割して配列を返します。 文字列.split(区切り文字) 文字列.split(区切り文字, 上限数) # 1文字ずつ分割して配列を返します。 文字列.chars # 1バイトずつ分割して整数の配列を返します。 文字列.bytes # 行ごとに分割して配列を返します。 文字列.lines
メソッド一覧
| メソッド | 概要 |
|---|---|
| split(sep) | 区切り文字で文字列を分割し、配列を返します。引数を省略すると空白で分割し、連続する空白をまとめて処理します。 |
| split(sep, n) | 第2引数に最大分割数を指定できます。超過した部分は末尾の要素にまとめられます。 |
| chars | 文字列を1文字ずつに分割した配列を返します。 |
| bytes | 文字列を1バイトずつ分割し、各バイトの整数値の配列を返します。 |
| lines | 文字列を行ごとに分割した配列を返します。改行コードは各要素に含まれます。 |
サンプルコード
sample_string_split.rb
# カンマで分割します。
csv = "孫悟空,ベジータ,ブルマ,クリリン"
puts csv.split(",").inspect # ["孫悟空", "ベジータ", "ブルマ", "クリリン"]
# 空白で分割します(引数省略時)。
sentence = " Hello Ruby World "
puts sentence.split.inspect # ["Hello", "Ruby", "World"]
# 分割数を制限します。
data = "2024:03:15"
puts data.split(":", 2).inspect # ["2024", "03:15"]
# chars で1文字ずつに分割します。
word = "Ruby"
puts word.chars.inspect # ["R", "u", "b", "y"]
# lines で行ごとに分割します。
multiline = "1行目\n2行目\n3行目"
multiline.lines.each do |line|
puts line.chomp # 改行を除去して出力します。
end
# 正規表現で分割できます。
text = "one1two2three3four"
puts text.split(/\d/).inspect # ["one", "two", "three", "four"]
ruby string_split.rb ["孫悟空", "ベジータ", "ブルマ", "クリリン"] ["Hello", "Ruby", "World"] ["2024", "03:15"] ["R", "u", "b", "y"] 1行目 2行目 3行目 ["one", "two", "three", "four"]
概要
『split』は文字列を配列に変換する最も基本的なメソッドです。引数なしで呼び出すと、連続する空白を1つの区切りとして扱い、先頭・末尾の空白も自動的に除去されます。
末尾の空文字列要素は自動的に除去されます。これを防いで空文字列要素を残したい場合は、第2引数に『-1』を指定してください(例: 『"a,,b,".split(",", -1)』)。
分割した配列を結合して文字列に戻すには『Array#join』を使用してください。文字列の一部を切り出すには『slice / []』を使用してください。
記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。