2010-07-28 5 views
4

Je souhaite ajouter un espace avant et après les chaînes aléatoires.Ajouter des espaces avant et après une chaîne dans ruby?

J'ai essayé d'utiliser "Random_string" .center (1, "") mais cela ne marche pas.

Merci

+0

' str.ljust (int) 'et' str.rjust (int) 'sont les méthodes que je cherchais quand je suis arrivé à ce poste . [Plus d'infos sur ceux-ci] (https://ruby-doc.org/core-2.2.0/String.html#method-i-ljust) –

Répondre

3

Mon rubis est rouillé, mais l'OMI a rien de mal avec la façon facile

def pad(random) 
    " " + random + " " 
end 

padded_random_string = pad("random_string") 

à l'aide du centre

"random_string".center("random_string".length + 2) 
+1

Cela ne devrait-il pas être pad ("random_string") '? –

+0

heh, je réclame Ruby rouille :) la fixation ... –

3
irb(main):001:0> x='Random String' 
=> "Random String" 
irb(main):002:0> y=' '+x+' ' 
=> " Random String " 
irb(main):003:0> x.center(x.length+2) 
=> " Random String " 

Le paramètre à center est la longueur totale la chaîne de sortie souhaitée (y compris le remplissage).

+0

basé sur les docs, vous n'avez pas besoin du deuxième argument pour centrer, mais je n'ai pas testé, donc il pourrait être faux :) –

+0

@ Lucas- le deuxième paramètre, s'il est présent, est une chaîne à utiliser comme caractère (s) de remplissage. Si elle est omise, les espaces sont utilisés. Je pense que c'était un ajout dans Ruby 1.8, et ce lien pourrait faire référence à la version 1.6. – bta

+0

à droite. J'aurais dû déclarer que vous n'en aviez pas besoin pour répondre à sa demande, puisque, sur la base de sa question, il veut ajouter de l'espace. –

4

Je veux dire, y a-t-il une raison pour laquelle vous ne pouvez pas faire cela?

padded_string = ' ' + random_string + ' ' 
5

Je trouve cela la solution la plus élégante:

padded_string = " #{random_string} "

Rien de mal à prendre la voie facile.

+0

C'est la solution la plus propre. –

1

"Random_string" .ljust ("Random_string" .length + 4) .rjust ("Random_string" .length + 8)
ou "Random_string" .ljust (17) .rjust (21) # où « Random_string "est de 13 caractères

en utilisant la méthode .ljust avec .rjust méthode

+0

En d'autres termes, juste .ljust plus les méthodes .rjust ensemble –

Questions connexes