Итак, вопрос спрашивает: «Напишите метод, который принимает строку и возвращает новую строку, в которой каждый согласный символ удваивается. Гласные (a, e, i, o, u), цифры, пунктуация и пробелне должно быть удвоено ".Ну, я быстро понял, что регулярное выражение должно сработать, но я довольно новичок в таких выражениях и поэтому должен был использовать оператор &&, чтобы заставить мое решение работать.Теперь я уверен, что это легко исправить, но я не смог его создать, поэтому вот мое решение проблемы:
def double_consonants(string)
array = string.chars.map do |char|
if char =~ /[a-z]/i && char =~ /[^aeiou]/i
char * 2
else
char
end
end
array.join
end
Так что double_consonants ("Hello World!") Правильно выводит "HHellllo WWorrlldd!"но я ищу более сжатое решение.Я пробовал [az ^ aeiou] / i и подобные комбинации, но они также удваивали гласные.Так что, если кто-то может научить меня, как правильно комбинировать два выражения, а также объяснить мне, почему моя рудиментарная попытка была неправильной, я был бы чрезвычайно благодарен.Кроме того, любые предложения или исправления к остальной части моего кода также приветствуются.