有没有最简单的方法来增加字符串值?

时间:2019-05-10 16:24:42

标签: ruby

我有一个包含很多数字的字符串a,例如a = '4408 0412 3456 7893'

我希望第二个值(从index=0开始)乘以2。我编写了这段代码,但这就像一个太大(错误)的代码:

    a = '4408 0412 3456 7893'
    b = a.delete(' ')
    card = []
    c = b.split(//)

    c.each_with_index do |value, index|
      card << ((value.to_i) *2) if index % 2 == 0
    end

因为最后我有一个像[8, 0, 0, 2, 6, 10, 14, 18]这样的数组,但是我应该有另一个像'8408042264106148183'这样的字符串。

1 个答案:

答案 0 :(得分:0)

要将您的字符串转换为带有整数的数组:

array = '4408 0412 3456 7893'.delete(' ').split('').map(&:to_i)
# result: [4, 4, 0, 8, 0, 4, 1, 2, 3, 4, 5, 6, 7, 8, 9, 3]

要将数组更改为每秒(?)值加倍的数组:

array.each_with_index {|v,i| i.even? ? array[i] = v*2 : array[i] = v}
# result: [8, 4, 0, 8, 0, 4, 2, 2, 6, 4, 10, 6, 14, 8, 18, 3]

再次创建一个字符串:

array.join('')
# result: "8408042264106148183"

这是您要找的吗?