web-dev-qa-db-ja.com

Rubyで区切り替え文字列を分割してそれを配列に変換するにはどうすればいいですか?

私はひもがあります

"1,2,3,4"

それを配列に変換したいのですが。

[1,2,3,4]

どうやって?

216
Neil Middleton
>> "1,2,3,4".split(",")
=> ["1", "2", "3", "4"]

整数の場合:

>> "1,2,3,4".split(",").map { |s| s.to_i }
=> [1, 2, 3, 4]

またはそれ以降のバージョンのRuby(> = 1.9 - Alexが指摘したように):

>> "1,2,3,4".split(",").map(&:to_i)
=> [1, 2, 3, 4]
394
Shadwell

文字列としての"1,2,3,4".split(",")

整数としての"1,2,3,4".split(",").map { |s| s.to_i }

31
Oliver N.

スペースなしのString Integerの場合はString

arr = "12345"

arr.split('')

output: ["1","2","3","4","5"]

Stringとしてスペースを持つString Integerの場合

arr = "1 2 3 4 5"

arr.split(' ')

output: ["1","2","3","4","5"]

スペースなしのString Integerの場合はInteger

arr = "12345"

arr.split('').map(&:to_i)

output: [1,2,3,4,5]

文字列の場合

arr = "abc"

arr.split('')

output: ["a","b","c"]

説明

  1. arr - >アクションを実行する文字列.
  2. split() - >は、入力を分割してそれを配列として格納するメソッドです。
  3. ''または' 'または',' - >は値です。指定されたストリングから削除する必要があります。
17
Aravin

カンマのような区切り文字を持つ文字列を変換する最も簡単な方法は、splitメソッドを使うことです。

"1,2,3,4".split(',') # "1", "2", "3", "4"]

splitメソッドの使い方の詳細については Ruby docs をご覧ください。

区切り文字に基づいてstrを部分文字列に分割し、これらの部分文字列の配列を返します。

PatternがStringの場合、その内容はstrを分割するときの区切り文字として使用されます。 patternが単一のスペースの場合、strは先頭のスペースと連続した空白文字の連続を無視して、空白で分割されます。

Patternが正規表現の場合、strはパターンが一致するところで分割されます。パターンが長さ0の文字列と一致すると、strは個々の文字に分割されます。 patternがグループを含む場合、それぞれの一致は同様に配列に返されます。

Patternが省略された場合、$の値。使用されている。 $の場合nil(これがデフォルトです)の場合、strはあたかも `'が指定されているかのように空白で分割されます。

Limitパラメーターを省略すると、末尾のNULLフィールドは抑制されます。 limitが正の数の場合、最大でその数のフィールドが返されます(limitが1の場合、文字列全体が配列内の唯一のエントリとして返されます)。負の場合、返されるフィールドの数に制限はなく、末尾のNULLフィールドは抑制されません。

1
MZaragoza