如何在Ruby中拆分分隔的字符串并将其转换为数组?

时间:2009-06-10 13:57:30

标签: arrays ruby string split

我有一个字符串

"1,2,3,4"

我希望将其转换为数组:

[1,2,3,4]

如何?

5 个答案:

答案 0 :(得分:394)

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

答案 1 :(得分:31)

"1,2,3,4".split(",")为字符串

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

答案 2 :(得分:17)

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]

For String

arr = "abc"

arr.split('')

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

<强>解释

  1. arr - &gt;你将要执行任何动作的字符串。
  2. split() - &gt;是一种方法,它将输入分开并将其存储为数组。
  3. ''' '',' - &gt;是一个值,需要从给定的字符串中删除。

答案 3 :(得分:1)

转换带逗号分隔符的字符串的最简单方法就是使用split方法

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

您可以在ruby docs

中找到有关如何使用拆分方法的更多信息
  

根据分隔符将str分为子串,返回一个数组   这些子串。

     

如果pattern是String,则其内容将用作分隔符   分裂str时如果pattern是单个空格,则str被拆分   空白,带有前导空格和连续空格   字符被忽略了。

     

如果pattern是Regexp,则str在模式匹配的位置被划分。   只要模式与零长度字符串匹配,str就会被分割成   个性人物。如果模式包含组,则各自   匹配也将在数组中返回。

     

如果省略pattern,则值为$;用来。如果$;是零(这是   默认情况下,str在空格上分割,就好像指定了`。

     

如果省略limit参数,则尾随空字段为   抑制。如果limit是正数,则最多为该数   将返回字段(如果limit为1,则返回整个字符串   作为数组中的唯一条目)。如果是否定的,则没有限制   返回的字段数,而不是尾随空字段   抑制。

答案 4 :(得分:-1)

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

each_charsplit('')基本相同:它将字符串拆分为字符数组。

嗯,我现在才意识到,在原始问题中,字符串中包含逗号,所以我的回答并没有真正帮助; - (..