目次
splitメソッドを使う
splitメソッドとは
文字列を分解して配列にするメソッドで、第一引数に区切り文字を指定することができるが、指定しない場合は空白文字で区切られる。
何も指定せず分解する場合
str = "ogino fujiwara nakamura"
array = str.split
p array
↓実行結果
["ogino", "fujiwara", "nakamura"]
半角スペースで区切られて配列が帰ってきた。
区切り文字を指定して分解する場合
以下のように第一引数で指定する。
文字列.split(区切り文字)
str = "ogino,fujiwara,nakamura"
array = str.split(",")
p array
↓実行結果
["ogino", "fujiwara", "nakamura"]
*区切り文字に文字列も指定可能
str = "ABCDEFG"
array = str.split("DE")
p array
↓実行結果
["ABC", "FG"]
正規表現にマッチした部分で分割する場合
↓書き方
文字列.split(正規表現)
str = "AB,CDE*F"
array = str.split(/[,|*]/)
p array
↓実行結果
["AB", "CDE", "F"]
一文字ずつ分解する場合(splitを使う)
引数に“”(ブランク)を指定する。
文字列.split("")
str = "chibalotte"
array = str.split("")
p array
↓実行結果
["c", "h", "i", "b", "a", "l", "o", "t", "t", "e"]
一文字ずつ分解する場合(charsを使う)
charsは文字列の文字を、一文字ずつ返すメソッド。
str = "chibalotte"
array = str.chars
p array
↓実行結果
["c", "h", "i", "b", "a", "l", "o", "t", "t", "e"]
分割数を指定したい場合
splitメソッドは、分割数を指定できるため、分割後の配列内の要素数を指定することができる。
分割数を第二引数(limit)で指定する。
文字列.split(区切り文字, 分割数)
str = "A,B,C,D,E,F,G"
array = str.split(",", 3)
p array
↓実行結果
["A", "B", "C,D,E,F,G"]
*分割数が文字列の区切り文字より少ない場合、前方の文字列から優先して区切られる。
scanメソッドを使う
正規表現では、「. 」は一文字を表すので、scanメソッドを使って以下のように分割することも可能。
str = "lotte"
array = str.scan(/./)
p array
↓実行結果
["l", "o", "t", "t", "e"]
*「 . 」の数によって、何文字で分割するかを指定する。
例)二文字
str = "chibalotte"
array = str.scan(/../)
p array
↓実行結果
["ch", "ib", "al", "ot", "te"]