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'
.
解决方案
要将您的字符串转换为具有整数的数组:
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"
这是你要找的吗?
推荐阅读
- azure - 如何在 ASP.NET 中使用 Azure AD 和 MSAL 获取令牌
- flask - Flask 中基于 DB 的动态表单生成
- reactjs - 如何在 React 中创建一个接收数组并显示复选框的共享组件?
- jquery - 使用 jQuery 如何为页面中的所有 ahrefs 创建唯一 id
- git - 瓷器命令添加和提交中使用了哪些管道命令?
- python - 如何计算在字符串中找到的三元组的数量?
- reactjs - 由于缺少 CSRF 令牌,Django Rest 框架中的发布请求失败
- node.js - Kubernetes ECONNRESET nodejs
- data-visualization - Tableau 如何根据两个字段为图表着色,一个是连续的,另一个是离散的
- unity3d - unity调整大小布局