我的代码输出有问题:
#!/usr/bin/env ruby
puts "Write some text: "
text = gets.chomp
text.each_byte do |asc|
print asc
end
puts
例如,我在标准ASCII中写文字: abc ,输出为: 979899 ,但我想要 以格式打印 - CHAR(97,98,99)
我通过函数split或squeeze尝试过,但是例如split(',')不是,我正在寻找, 所以,如果有人能给我一个提示怎么做,我将不胜感激。
答案 0 :(得分:2)
这个怎么样:
puts "CHAR(#{text.each_byte.to_a.join(', ')})"
答案 1 :(得分:1)
将字节转换为字符串:
'abc'.each_byte.map(&:to_s)
# => ["97", "98", "99"]
加入,
:
'abc'.each_byte.map(&:to_s).join(', ')
# => "97, 98, 99"
最后使用字符串插值:
"CHAR(#{'abc'.each_byte.map(&:to_s).join(', ')})"
# => "CHAR(97, 98, 99)"
<强>更新强>
您可以将map(&:to_s)
替换为to_a
,因为String#join
会将项目转换为字符串。