Ruby: вводить пробелы каждые X количество символов
В строке ruby, как я могу вставить пробел в каждое число X символов?
В качестве примера я хотел бы вставить пробел каждые 8 символов данной строки.
Ответы
Ответ 1
>> s = "1234567812345678123456781234567812345678"
=> "1234567812345678123456781234567812345678"
>> s.gsub(/(.{8})/, '\1 ')
=> "12345678 12345678 12345678 12345678 12345678 "
Изменить:. Вы можете использовать позитивный просмотр, чтобы не добавлять дополнительное пространство в конец:
>> s.gsub(/(.{8})(?=.)/, '\1 \2')
=> "12345678 12345678 12345678 12345678 12345678"
Ответ 2
Альтернативное решение:
s.scan(/.{1,8}/).join(' ')
String#scan
будет разбивать его на вас (в количествах, состоящих из 8 символов, за исключением последнего фрагмента, который может быть короче), а затем Array#join
воссоединяет куски с соответствующим символом вкрапленным.