60 votes

Obtenir une sous-chaîne dans Ruby par x nombre de caractères

J'essaie de produire du code Ruby qui prendra une chaîne et en retournera une nouvelle, avec un nombre x nombre de caractères supprimés de sa fin - il peut s'agir de lettres, de chiffres, d'espaces, etc.

Ex: étant donné la chaîne suivante

a_string = "a1wer4zx"

J'ai besoin d'un moyen simple pour obtenir la même chaîne, moins - disons - les 3 derniers chiffres. Dans le cas ci-dessus, ce serait "a1wer". La façon dont je le fais en ce moment semble très compliquée:

 an_array = a_string.split(//,(a_string.length-2))
an_array.pop
new_string = an_array.join
 

Des idées?

126voto

Nikita Rybak Points 36641

Que dis-tu de ça?

 s[0, s.length - 3]
 

Ou ca

 s[0..-4]
 

Éditer

 s = "abcdefghi"
puts s[0, s.length - 3]  # => abcdef
puts s[0..-4]            # => abcdef
 

16voto

Brian Clapper Points 11222

Utilisez quelque chose comme ceci:

 s = "abcdef"
new_s = s[0..-2] # new_s = "abcde"
 

Voir la méthode slice ici: http://ruby-doc.org/core/classes/String.html

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X