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