0

如何将字符串附加'\x'到 Ruby 中的数字?我已经尝试过'\\x',但它不起作用。

4

3 回答 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 回答