【问题标题】:Ruby. How to split a string element inside an array?红宝石。如何拆分数组中的字符串元素?
【发布时间】:2016-06-28 00:06:33
【问题描述】:

我有一个 arr=["abcd"] 的数组

第一季度。是否有比以下更简单的方法将 'abcd' 拆分为 arr=["a","b","c","d"]:

    arr=["abcd"]
    arr_mod=[]
    x=0
    while x < arr[0].size
        arr_mod << arr[0][x]
        x +=1
    end
    puts "==>#{arr_mod}"

arr.split('') 将不起作用。

第二季度。有没有办法把 arr=["abcd"] 转换成 "abcd" 的字符串?

【问题讨论】:

  • 您的代码不会给出arr=["a","b","c","d"]。是否要将arr 替换到位?

标签: arrays ruby split


【解决方案1】:
arr.first.split('')
  #=> ["a", "b", "c", "d"] 

arr.first
  #=> "abcd"

【讨论】:

  • 这很棒。我从来没有想过这个。谢谢卡里!
【解决方案2】:

最简单的方法是做

arr.join("").chars

这会将arr 变成一个大字符串,然后将该字符串变成一个字符数组。

对于第二个问题,只需执行arr.join(""),这会将所有字符串转换为数组中的一个大字符串。

如需了解更多信息,请查看Array#joinString#chars 了解更多详情。

【讨论】:

    【解决方案3】:

    第一季度:

    如果您需要一种方法来遍历包含多个元素的数组,这将为您提供一些灵活性:

    arr = ['abcd']
    arr = arr[0].split("")
      #=> ["a", "b", "c", "d"]
    

    第二季度:

    arr = ['abcd']
    arr = arr[0]
      #=> "abcd"
    

    【讨论】:

      【解决方案4】:

      第一季度:

      arr.map(&:chars).flatten
      #=> ["a", "b", "c", "d"]
      

      第二季度:

      arr = arr[0]
      #=> "abcd"
      

      【讨论】:

      • 首选flat_map(&amp;:chars) 而不是map(&amp;:chars).flatten
      【解决方案5】:

      这是一种方式:

      arr.join.split('') #=> ["a", "b", "c", "d"]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-01-05
        • 1970-01-01
        • 2010-09-09
        • 2010-11-29
        • 1970-01-01
        • 2014-02-11
        • 2011-01-21
        • 2010-09-25
        相关资源
        最近更新 更多