どうも、ちょげ(@chogetarou)です。
文字列(string)を分割して配列(array)に変換する方法を紹介します。
方法

文字列(string)を分割して配列(array)に変換する方法は、3つあります。
区切り文字
ひとつめは、区切り文字を使う方法です。
まず、文字列からsplitメソッドを呼び出します。
そして、splitメソッドの引数に区切り文字を指定します。
#text=対象の文字列, separator=区切り文字
result = text.split(separator)
上記のsplitメソッドは、呼び出した文字列(string)を区切り文字で分割した配列を生成します。
使用例
text = "a-b-cde-fg-hijk-lm-n"
result = text.split('-')
p result
出力:
["a", "b", "cde", "fg", "hijk", "lm", "n"]
正規表現
ふたつめは、正規表現を使う方法です。
まず、文字列からsplitメソッドを呼び出します。
そして、splitメソッドの引数に、区切り文字を正規表現のパターンで指定します。
#text=対象の文字列, pattern=正規表現のパターン
result = text.split(pattern)
上記のsplitメソッドは、呼び出した文字列(string)を正規表現にマッチした区切り文字で分割した配列を生成します。
使用例
text = "a6b5cde4fg41hijk3lm2n1"
result = text.split(/[1-9]+/)
p result
出力:
["a", "b", "cde", "fg", "hijk", "lm", "n"]
文字数
みっつめは、文字数を使う方法です。
まず、文字列からscanメソッドを呼び出します。
そして、scanメソッドの引数に「/.{n}/
」(n=文字数)を指定します。
#text=対象の文字列, n=文字数
result = text.scan(/.{n}/)
上記のscanメソッドは、呼び出した文字列(string)を指定した文字数で分割した配列を生成します。
上記のscanメソッドでは、文字数が足りず、余った末尾の文字列が省力されます。
もし、文字数の余りを省略したくない場合は、scanメソッドの引数に「/.{1,n}/
」(n=文字数)を指定します。
#余った文字列を省略しない
result = text.scan(/.{1,3}/)
使用例1
text = "abcdefghijklmno"
result = text.scan(/.{3}/)
p result
出力:
["abc", "def", "ghi", "jkl", "mno"]
使用例2
text = "abcdefghijklmn"
result = text.scan(/.{1,3}/)
p result
出力:
["abc", "def", "ghi", "jkl", "mn"]
まとめ
文字列(string)を分割して配列(array)に変換する方法は、次の3つです。
- 区切り文字を使う方法
result = text.split(separator)
- 正規表現を使う方法
result = text.split(pattern)
- 文字数を使う方法
result = text.scan(/.{n}/)
コメント