【问题标题】:Splitting array and get desired elements [closed]拆分数组并获得所需的元素[关闭]
【发布时间】:2013-03-21 05:31:51
【问题描述】:

如果我有这个数组:

["1","2","3,a","4,b"]

我怎样才能从中得到这个数组?

["1","2","3","4"].

【问题讨论】:

  • 先尝试一下,我们会帮你的。如果您不想花时间,我们为什么要花时间?
  • Aurick 的好问题

标签: ruby


【解决方案1】:

假设你有所有整数,(如果不是我猜你明白了:))

["1","2","3,a","4,b"].collect {|i| i.to_i}

【讨论】:

  • +1。关于这一点的唯一答案实际上看起来像 Ruby 代码。
  • @theTinMan,谢谢 :)
  • i.to_i.to_s 会更准确,因为作者想要一个字符串数组,而不是整数数组。但无论如何,这段代码比公认答案中的 java 代码要好得多。
  • 或者只是.collect(&:to_i)
【解决方案2】:

使用如下数组:

ary = ["1","2","3,a","4,b"]

我会使用:

ary.map{ |s| s[/\A(\d+)/, 1] }

结果:

[ [0] "1", [1] “2”, [2] “3”, [3] “4” ]

它只是在字符串的开头找到数字并将它们返回到一个新数组中。

【讨论】:

  • +1 哇,更干净,(这就是我喜欢 ruby​​ 的原因:))
  • 可能是最好的,但示例输入中的任何内容都没有真正暗示 \A 是必要的。也许只是 /\d+/
  • 它的存在是为了提高速度和提高准确性。
【解决方案3】:

试试:

["1","2","3,a","4,b"].map(&:to_i)
=> [1, 2, 3, 4]

获取字符串数组

["1","2","3,a","4,b"].map(&:to_i).map(&:to_s)
=> ["1", "2", "3", "4"]

【讨论】:

    【解决方案4】:

    这也应该有效...

    array=["1","2","3,a","4,b"]
      for i in 0..array.length()-1
        if array[i].include?(",")
          ab=array[i].split(",")
          array[i]=ab[0]
        end
    
      end
    print array #["1","2","3","4"]
    

    【讨论】:

    • 这行得通,但几乎尽可能地不像Ruby。我想更糟糕的是使用 .index 而不是 .include?​​span>
    【解决方案5】:

    试试这个删除选项:

    irb(main):014:0> a = ["101","2zd","3,a","10,ab"]
    => ["101", "2zd", "3,a", "10,ab"]
    irb(main):015:0> count = a.count
    irb(main):016:0> for i in 0..count 
    irb(main):017:1> puts a[i].delete("^0-9")
    irb(main):018:1> end
    101
    2
    3
    10
    

    更新代码(每个循环的使用 - 感谢铁皮人)

    irb(main):005:0>  a = ["101","2zd","3,a","10,ab"]
    => ["101", "2zd", "3,a", "10,ab"]
    irb(main):006:0> b = []
    => []
    irb(main):007:0> a.each do |t|
    irb(main):008:1* b << t.delete("^0-9")
    irb(main):009:1> end
    => ["101", "2zd", "3,a", "10,ab"]
    irb(main):010:0> puts b
    101
    2
    3
    10
    => nil
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多