如何将每个语句的结果输​​出到变量?

时间:2017-11-16 01:39:07

标签: ruby string

我有这个代码可以打印两次字符串的每个字符:

r = "12345"
r.split("").each do |ch|
  puts "#{ch}#{ch}"
end

我得到了这个输出:

11
22
33
44
55

我想将输出"1122334455"存储在变量中。如何重写代码才能执行此操作?

4 个答案:

答案 0 :(得分:3)

您可以使用字符将字符串中的每个字符作为" main"中的值。数组,然后使用map格式化里面的元素,然后将它们全部连接成最终的字符串,如:

r = '12345'
capture = r.chars.map { |ch| ch * 2 }.join
p capture
# "1122334455"

答案 1 :(得分:3)

一种方法:

r.gsub(/(.)/,'\1\1') #=> "1122334455"

答案 2 :(得分:2)

Sagar和Sebastian的回答是直截了当的方法,但是如果你想坚持原始代码(迭代字符),那么这是另一种方式:

variable = r.each_char.with_object(""){|c, s| s << c * 2}
# => "1122334455"

答案 3 :(得分:0)

您可以在Ruby&gt;中使用Array#sum 2.4

'12345'.chars.sum('') { |n| n * 2  }                                           
 #=> "1122334455"
相关问题