【问题标题】:Combining string elements of an array in Ruby在Ruby中组合数组的字符串元素
【发布时间】:2015-02-06 17:13:01
【问题描述】:

我有一个数组,此时为["firstname1 ", "lastname1", "firstname2 ", "lastname2", etc],我正在尝试想出一种方法来组合字符串,这样我将拥有一个["firstname1 lastname1", "firstname2 lastname2", etc] 的数组。

【问题讨论】:

    标签: ruby arrays string join


    【解决方案1】:

    使用Enumerable#each_slice,您可以迭代n 元素的切片(在您的情况下为2)。

    通过加入这两个元素,你会得到你想要的。

    a = ["firstname1 ", "lastname1", "firstname2 ", "lastname2"]
    a.each_slice(2).map(&:join)
    # => ["firstname1 lastname1", "firstname2 lastname2"]
    

    【讨论】:

    • 感谢您的快速回复!
    【解决方案2】:

    其他一些方法:

    a = ["Shirley ", "Temple", "Oliver ", "Hardy", "John ", "Wayne"]
    

    #1

    (0...a.size).step(2).map { |i| a[i]+a[i+1] }
      #=> ["Shirley Temple", "Oliver Hardy", "John Wayne"]
    

    #2

    enum = a.to_enum
    (a.size/2).times.map { enum.next + enum.next }
      #=> ["Shirley Temple", "Oliver Hardy", "John Wayne"]
    

    #2a

    enum = a.to_enum
    names = []
    loop { names << enum.next + enum.next }
    names
      #=> ["Shirley Temple", "Oliver Hardy", "John Wayne"]
    

    #3

    fname = nil
    a.each_with_object([]) { |s,a| (s[-1]==' ') ? fname=s : a << fname+s }
      #=> ["Shirley Temple", "Stan Laurel", "John Wayne"]
    

    【讨论】:

      猜你喜欢
      • 2011-12-22
      • 1970-01-01
      • 1970-01-01
      • 2017-01-31
      • 2020-10-26
      • 2020-09-15
      • 2017-05-14
      • 2011-07-04
      • 1970-01-01
      相关资源
      最近更新 更多