86 votes

Indice de tranche de chaîne Ruby: str [n..infinity]

Question facile, mais impossible de la trouver dans la doc.

Comment découper une chaîne ou un tableau de n jusqu'à la fin des temps?

 >> 'Austin'[1..3]
=> "ust"
>> 'Austin'[1..]
SyntaxError: compile error
(irb):2: syntax error, unexpected ']'
    from (irb):2
 

167voto

Nakilon Points 11635

Utilisez l'indexation inverse:

 [1..-1]
 

Les éléments de Ruby et de quelques autres langages ont une indexation et une inversion simples (je peux me tromper de terminologie). Ainsi, une chaîne de longueur n a 0..(n-1) et des index supplémentaires (-n)..1 , mais pas plus. Vous ne pouvez pas utiliser les index >=n ou <-n .

  'i' 'n'|'A' 'u' 's' 't' 'i' 'n'|'A' 'u' 's' 't' 'i' 'n'|'A' 'u' 's'
 -8  -7  -6  -5  -4  -3  -2  -1   0   1   2   3   4   5   6   7   8 
<- error|                you can use this               | error ->
 

19voto

Topher Fangio Points 7986

Utilisez -1 :-)

 'Austin'[1..-1] # => "ustin"
 

4voto

Vivin Paliath Points 40975

Essayez d'utiliser [1..-1]

3voto

Jason Noble Points 2580

Si vous affectez la chaîne à une variable, vous pouvez utiliser longueur / taille

 string = 'Austin'
string[1..string.length]  # => ustin
string[1..string.size]    # => ustin
 

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