如何将字符串'\x'
附加到Ruby中的数字?我试过'\\x'
,但它没有用。
答案 0 :(得分:1)
可能类似于:
my_string = 'foo 123 456 bar'
my_string.gsub(/(\d+)/, '\\x\1') # "foo \\x123 \\x456 bar"
答案 1 :(得分:0)
如果没有上下文,很难知道你想要实现的目标。以下是一些方法(如果你真的想要追加):
"%d\\x" % num
"#{num}\\x"
如果您尝试输出十六进制数字,这很好:
"\\x%s" % num.to_s(16)
答案 2 :(得分: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中,单引号字符串文字的替换次数远少于双引号字符串。