Rubyで区切られた文字列を分割して配列に変換する方法は?


回答:


412
>> "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]

28
1.9以上を使用している場合は、 "1,2,3,4" .split( '、')。map(:to_i)を使用できます
Alex Fort

7
あなたが行うことができ、アクティブサポートを使用している場合:マップ(&:to_i)
jonnii

31

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

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


19

以下のためのString IntegerスペースのないようにString

arr = "12345"

arr.split('')

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

以下のためのString Integerスペースと同様にString

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. ''or ' 'または','->は値であり、指定された文字列から削除する必要があります。

1

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

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

Rubyメソッドのドキュメントで、splitメソッドの使用方法に関する詳細情報を見つけることができます

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

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

パターンが正規表現の場合、パターンが一致する場所でstrが分割されます。パターンが長さゼロの文字列に一致する場合は常に、strは個々の文字に分割されます。パターンにグループが含まれている場合、それぞれの一致が配列にも返されます。

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

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


-1
"12345".each_char.map(&:to_i)

each_char基本的に同じsplit('')です:文字列をその文字の配列に分割します。

うーん、元の質問では文字列にカンマが含まれているので、私の答えはあまり役に立ちません;-( ..


3
自分の答えを編集して、何をしているのかを説明できますか?
MZaragoza 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.