2009-06-24 7 views
3

j'ai une série de quatre lignes vides qui tout fait huit lignes au total dans les domaines suivants:blanc garniture de retour à la ligne chaîne en Ruby

str = "aaa\n\n\nbbb\n\nccc\ddd\n" 

Je veux revenir tout cela en une seule ligne. La sortie devrait être comme celui-ci sur une seule ligne:

aaabbbcccddd 

je diverses fonctions de finition pour obtenir la sortie mais je suis à défaut.

Quelle méthode dois-je utiliser ici?

+0

Pour clarifier: Voulez-vous supprimer tous les sauts de ligne, ou uniquement les lignes vides? – Matchu

+0

(Je pense que weepos vous demandait de cliquer sur la coche à côté de la réponse de Matchu, pour qu'elle devienne verte.Ceci marque cette réponse comme la solution acceptée, donne des points bonus Matchu, donne des points bonus, et donne un indicateur visuel clair tout ce que le problème a une réponse) – rampion

Répondre

11
str.gsub(/\n/,'') 
+0

Wow Son fonctionnement c'est ce que je voulais ..amazing .., j'ai lutté beaucoup, vous les gars résolu en 1 minute. Merci beaucoup. Je suis nouveau à la langue ruby ​​ainsi qu'à ce site. J'espère que je serai en mesure de résoudre mes questions liées rubis de vous tous. Merci encore –

+0

oui exactement :) im en utilisant cette solution, merci –

+1

Il ya une petite coche à côté de lui - c'est ce que vous cliquez lorsque vous utilisez une réponse^_^ – Matchu

1
> str = "aaa\n\n\nbbb\n\nccc\ddd\n" 
=> "aaa\n\n\nbbb\n\ncccddd\n" 
> str.gsub("\n", "") 
=> "aaabbbcccddd" 
+0

Merci beaucoup mcl son travail .. –

12

La façon dont Ruby (et Perl-ish un peu moins):

new_str = str.delete "\n" 

... ou si vous voulez le faire en place:

str.delete! "\n" 
+0

+1 pour ne pas en utilisant des regex inutiles. – molf

+0

... Je viens de remarquer cette réponse, et c'est nettement plus propre. Beau travail xD – Matchu

Questions connexes