2015-02-06 2 views
1

Я пытаюсь заменить все гласные в строку с «*»Замена нескольких символов в Ruby, строка с одним символом

Это то, что я в данный момент

string = "alphabet" 

string.gsub! "a", "*" 
string.gsub! "e", "*" 
string.gsub! "i", "*" 
string.gsub! "o", "*" 
string.gsub! "u", "*" 

Я хочу строку равным "* lph * b * t". Что это самый простой способ сделать это?

+0

Обратитесь к документации по адресу: //www.ruby-doc.org/core-2.2.0/String.html#method-i-gsub Он дает ответ на то, что вы просите – Fiddles

+0

в порядке, спасибо вы! – josh

ответ

7

Самый простой я могу думать:

string.tr!("aeiou", "*") 
4

Другой стандартный способ:

string = "alphabet" 
string.gsub!(/[aeiou]/,'*') 
    #=> "*lph*b*t" 
string 
    #=> "*lph*b*t" 

, которые можно было бы написать

string.gsub!(/[aeiou]/) {'*'} 
Смежные вопросы