Я работаю над проблемой, когда мне присваивается «закодированное» сообщение в виде строки и нужно вернуть декодированное сообщение. Для этого требуется, чтобы я разделил строку смешанных символов и чисел в массив. Так, например, если я получил строку, как это:Ruby - Преобразование смешанной строки в массив
"0h"
Я хочу, чтобы разделить его в массив, как это:
[0, "h"]
Но когда я использую .split
я получаю
["0", "h"]
Решения, которые я нашел, учитывают только строки, все числа, но не смешанные строки. Есть ли способ преобразовать строки, которые являются числами в числа, сохраняя символы?
'chars', поскольку первая часть также работает, если требуются отдельные символы. – tadman
@ tadman, хорошее предложение, поскольку на этом вопрос непонятен. Я сделал редактирование. –
Вы можете избежать совпадения '\ d +' дважды с помощью групп захвата: 'str.scan (/ (\ D +) | (\ d +) /). Map {| s, d | s || d.to_i} '(обратите внимание, что я изменил порядок' \ D + 'и' \ d + ') – Stefan