首页 文章

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

提问于
浏览
209

我有一个字符串

"1,2,3,4"

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

[1,2,3,4]

怎么样?

5 回答

  • 380

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

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

    你可以在ruby docs找到更多关于如何使用split方法的信息

    根据分隔符将str分为子串,返回这些子串的数组 . 如果pattern是String,则在拆分str时将其内容用作分隔符 . 如果pattern是单个空格,则str在空白上拆分,前导空格和连续空格字符的运行被忽略 . 如果pattern是Regexp,则str在模式匹配的位置被划分 . 只要模式匹配零长度字符串,str就会被拆分为单个字符 . 如果pattern包含组,则相应的匹配也将在数组中返回 . 如果省略pattern,则值为$;用来 . 如果$;是nil(这是默认值),str在空格上分割,就像指定了`'一样 . 如果省略limit参数,则禁止尾随空字段 . 如果limit是正数,则最多将返回该字段数(如果limit为1,则整个字符串将作为数组中的唯一条目返回) . 如果为负数,则返回的字段数没有限制,并且不会抑制尾随空字段 .

  • 1

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

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

  • -2

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

    arr = "12345"
    
    arr.split('')
    
    output: ["1","2","3","4","5"]
    

    For String Integer,space为String

    arr = "1 2 3 4 5"
    
    arr.split(' ')
    
    output: ["1","2","3","4","5"]
    

    对于没有空格作为整数的字符串整数

    arr = "12345"
    
    arr.split('').map(&:to_i)
    
    output: [1,2,3,4,5]
    

    For String

    arr = "abc"
    
    arr.split('')
    
    output: ["a","b","c"]
    

    Explanation

    • arr - >您要执行任何操作的字符串 .

    • split() - >是一种方法,它将输入分开并将其存储为数组 .

    • ''' '',' - >是一个值,需要从给定的字符串中删除 .

  • 16
    >> "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]
    
  • 31
    "12345".each_char.map(&:to_i)
    

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

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

相关问题