我有一个字符串
"1,2,3,4"
我希望将其转换为数组:
[1,2,3,4]
如何?
答案 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]
arr = "abc"
arr.split('')
output: ["a","b","c"]
<强>解释强>:
arr
- &gt;你将要执行任何动作的字符串。split()
- &gt;是一种方法,它将输入分开并将其存储为数组。''
或' '
或','
- &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_char
与split('')
基本相同:它将字符串拆分为字符数组。