Дано:Удаление символов из элементов массива в Ruby,
array = ["1289", "12 apples", "12546", "123"]
Как я могу напечатать все элементы массива, с «12» удалены? Ответ, который я ищу, должен применяться, даже если массив содержит сотни элементов.
Дано:Удаление символов из элементов массива в Ruby,
array = ["1289", "12 apples", "12546", "123"]
Как я могу напечатать все элементы массива, с «12» удалены? Ответ, который я ищу, должен применяться, даже если массив содержит сотни элементов.
Просто используйте map
с gsub
(или sub
, когда 12
появляется только один раз в строке):
array = [ "1289", "12 apples", "12546", "123"]
array.map { |word| word.gsub('12', '') }
#=> ["89", " apples", "5463", "3"]
Интересно, почему мой пост был проголосован несколько раз, но никто не объяснил почему. ОП пояснила в комментариях, что она хочет сделать это с 12 в любой позиции * (а не только в начале), и мой ответ делает это ... – spickermann
То же самое произошло со мной. Не уверен, кто делает диск - путем downvoting по этому вопросу. Независимо от того, я проголосовал за то, чтобы закрыть как нечеткое, что вы просите. –
Если вы хотите сделать это "на месте" Я бы
array = ["1289", "12 apples", "12546", "123"]
array.each{ |s| s['12'] = '' }
Вы можете использовать любое из следующих действий.
array = [ "1289", "12 apples", "1254612", "123"]
раствор 1 (используя метод string#tr)
array.each{|string| puts string.tr("/12(\s+)?/", '')}
## Output
"89"
"apples"
"546"
"3"
Раствор 2 (с использованием метода string#gsub)
array.each{|string| puts string.gsub(/12(\s+)?/, '')}
## Output
"89"
"apples"
"546"
"3"
итерацию и GSUB? –
Каков ожидаемый результат в следующих случаях: «aples12», «ap12les»? Другими словами, «12» должны быть отобраны в любом положении или только в начале строки? –
Только начало для этого. Хотя я хотел бы знать, как это сделать с 12 в любой позиции. –