如何将字符串附加'\x'
到 Ruby 中的数字?我已经尝试过'\\x'
,但它不起作用。
问问题
1554 次
3 回答
1
大概是这样的:
my_string = 'foo 123 456 bar'
my_string.gsub(/(\d+)/, '\\x\1') # "foo \\x123 \\x456 bar"
于 2012-04-20T09:37:27.533 回答
0
如果您使用的是单引号字符串,'\x'
那么您可能已经拥有了您想要的东西。当 Ruby(或者更准确地说,IRB)打印带有文字反斜杠的字符串时,它显示它默认转义,这就是#p
行为方式(这就是 IRB 用来显示结果的方式)。但是字符串可能只有一个黑斜线。
num = 123
s = '%d\x' % num #=> "123\\x" (using the short-hand form for sprintf)
print s #=> 123\x
p s #=> "123\\x"
puts '%d\x' % num #=> 123\x - what the string actually contains
puts num.to_s + '\x'
请注意,在 Ruby 中,单引号字符串文字的替换比双引号字符串要少得多。
于 2012-04-20T09:50:32.377 回答
0
如果没有上下文,很难知道您要达到的目标。这里有一些方法(如果你真的想追加):
"%d\\x" % num
"#{num}\\x"
如果您尝试输出十六进制数字,这很好:
"\\x%s" % num.to_s(16)
于 2012-04-20T09:37:42.570 回答