繁体   English   中英

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

[英]How to split a delimited string in Ruby and convert it to an array?

我有一个字符串

"1,2,3,4"

我想把它转换成一个数组:

[1,2,3,4]

怎么样?

>> "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,2,3,4".split(",")作为字符串

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

对于没有空格的String Integer作为String

arr = "12345"

arr.split('')

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

对于String Integer其中space为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]

对于String

arr = "abc"

arr.split('')

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

说明

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

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

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

你可以在ruby文档中找到有关如何使用split方法的更多信息

将str分为基于分隔符的子字符串,返回这些子字符串的数组。

如果pattern是String,则在拆分str时将其内容用作分隔符。 如果pattern是单个空格,则str在空格上拆分,前导空格和连续空格字符的运行被忽略。

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

如果省略pattern,则$;的值; 用来。 如果$; 是nil(这是默认值),str在空格上分割,就像指定了`'一样。

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

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

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

嗯,我现在才意识到,在原始问题中,字符串中包含逗号,所以我的回答并不是很有用;-( ..

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM