3
我有一个带有不可打印字符的字符串。Ruby将非打印字符转换为数字
什么我目前做的是用波浪线替换它们:
string.gsub!(/^[:print:]]/, "~")
但是,我真的希望将它们转化为自己的整数值。
我想这一点,但它总是输出0
string.gsub!(/[^[:print:]]/, "#{$1.to_i}")
的思考?
我有一个带有不可打印字符的字符串。Ruby将非打印字符转换为数字
什么我目前做的是用波浪线替换它们:
string.gsub!(/^[:print:]]/, "~")
但是,我真的希望将它们转化为自己的整数值。
我想这一点,但它总是输出0
string.gsub!(/[^[:print:]]/, "#{$1.to_i}")
的思考?
String#gsub,String#gsub!接受可选块。该块的返回值用于替换。
"\x01Hello\x02".gsub(/[^[:print:]]/) { |x| x.ord }
# => "1Hello2"
Object#inspect也是一种选择,如果你只需要输出字符串与非打印字符记录或进行调试。
puts "\x01Hello\x02".inspect
# => "\u0001Hello\u0002"
在11分钟内我会接受这个答案。 – screenmutt