2010-08-31 7 views

Répondre

119

Utilisez l'indexation inverse:

[1..-1] 

Les éléments de Ruby et d'autres langues vers l'avant a droit l'indexation et la marche arrière (je peux faire erreur terminologie). Ainsi, chaîne avec la longueur n a 0..(n-1) et 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 -> 
+12

+1 pour l'illustration – bta

+1

Belle illustration, cependant, votre utilisation de " Les "lettres valides" (c'est-à-dire celles qui existent dans la chaîne) sont un peu trompeuses à mon avis puisque les données en dehors des limites de la chaîne sont vraiment indéfinies. Cela pourrait être n'importe quoi, y compris les non-caractères. Quoi qu'il en soit, +1 pour une réponse aussi bien expliquée :-) –

11

Utilisez -1 :-)

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

Essayez d'utiliser [1..-1]

3

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

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