Ruby: напечатать непечатаемую строку данных

#ruby #string #printing #hex

#ruby #строка #печать #шестнадцатеричный

Вопрос:

Если у меня есть переменная x, которая когда-нибудь будет обычной строкой для печати, а иногда некоторыми случайными шестнадцатеричными данными (включая непечатаемые символы), как я могу надежно напечатать это с заполнением пробелов? пример:

 def print(x)
  puts("%-15s" % x) 
end

x = "test"
print(x) 
x = Array.new(256) { rand(256) }.pack('c*')
print(x) 
  

Комментарии:

1. that will sometime be a ... print that will space padding ? опечатка?

Ответ №1:

 def print(x)
  puts "%-15s" % [x.inspect]
end
  

И если вы хотите избавиться от "..." :

 puts "%-15s" % [x.inspect[1..-2]]
  

Комментарии:

1. Хотя вы, вероятно, знаете это, обратите внимание, что String#% не требует, чтобы аргумент был массивом, если передается только один элемент, т.Е. puts "%-15s" % x.inspect