2011-03-16 3 views
0

J'essaie d'écrire un petit programme Ruby qui peut insérer deux lettres derrière les consonnes seulement dans une chaîne. J'essaye de le faire en utilisant deux classes dans une classe principale en passant les caractères d'une chaîne au bloc associé à la méthode de classe. Une méthode permettrait d'insérer les lettres, l'autre serait en mesure de les supprimer.Insérer des caractères dans une chaîne donnée

Voici ce que j'ai jusqu'à présent:

class Mytranslator 
    def to_mytrans(string) 
    letters = string.inject('it') {|letters, char| collection += char} 
    puts letters 
    end 


    def to_normaltrans(string) 

    end 
end 

Le problème est, je ne sais pas si je suis même sur la bonne voie. Et je ne sais pas comment écrire la seconde méthode. Toute aide serait grandement appréciée. Merci.

+1

Pourriez-vous ajouter l'entrée et la sortie par exemple, ce que vous attendez. La description ne l'explique pas assez bien. –

+0

Je veux qu'ils soient des méthodes de classe et de les appeler avec quelque chose comme ceci: Mytranslator.to_mytrans ("Some string.") {| C | print c} et obtenez le résultat comme ceci: "Sitomite sittitritinitgit." Merci. –

Répondre

0
def to_mytrans(s) 
    s.gsub(/([^aeiouAEIOU])/,'\1it') 
end 

def to_normaltrans(s) 
    s.gsub(/([^aeiouAEIOU])it/,'\1') 
end 

Cela échouera si votre chaîne a des numéros/ponctuation, etc.

+0

Merci! C'est ce que je cherchais. –

+0

Comment transformer ces méthodes en méthodes de classe? Je veux appeler une méthode de classe avec quelque chose comme ceci: Mytranslator.to_mytrans ("Some string.) {| C | print c} J'essaie d'obtenir une sortie comme ceci:" Sitomite sittitritinitgit. " –

+0

make it def self .to_mytrans (s) –

Questions connexes