La chaîne est ex="test1, test2, test3, test4, test5"
quand j'utilise
ex.split(",").first
il revient
"test1"
Maintenant, je veux récupérer les éléments restants, c’est-à-dire `" test2, test3, test4, test5 ". Si j'utilise
ex.split(",").last
il ne retourne que
"test5"
Comment faire en sorte que tous les éléments restants soient sautés en premier?
Essaye ça:
first, *rest = ex.split(/, /)
Maintenant, first
sera la première valeur, rest
sera le reste du tableau.
ex.split(',', 2).last
Le 2 à la fin dit: divisé en 2 morceaux, pas plus.
normalement, split divise la valeur en autant de pièces que possible. En utilisant une seconde valeur, vous pouvez limiter le nombre de pièces que vous obtiendrez. Utiliser ex.split(',', 2)
vous donnera:
["test1", "test2, test3, test4, test5"]
sous forme de tableau, au lieu de:
["test1", "test2", "test3", "test4", "test5"]
Puisque vous avez un tableau, ce que vous vraiment voulez, c'est Array#slice
_, pas split
.
rest = ex.slice(1 .. -1)
# or
rest = ex[1 .. -1]
Vous avez probablement mal saisi certaines choses. D'après ce que je comprends, vous commencez avec une chaîne telle que:
string = "test1, test2, test3, test4, test5"
Ensuite, vous voulez le scinder pour ne conserver que les sous-chaînes significatives:
array = string.split(/, /)
Et à la fin, vous n’avez besoin que de tous les éléments, à l’exclusion du premier:
# We extract and remove the first element from array
first_element = array.shift
# Now array contains the expected result, you can check it with
puts array.inspect
Est-ce que cela a répondu à votre question?
Désolé un peu tard pour la fête et un peu surpris que personne ne mentionne la drop méthode
ex="test1, test2, test3, test4, test5"
ex.split(",").drop(1).join(",")
=> "test2,test3,test4,test5"
ex="test1,test2,test3,test4,test5"
all_but_first=ex.split(/,/)[1..-1]
si vous voulez les utiliser comme un tableau, vous le saviez déjà, sinon vous pouvez utiliser chacun d'eux comme paramètre différent ....
parameter1,parameter2,parameter3,parameter4,parameter5 = ex.split(",")
Vous pouvez aussi faire ceci:
String is ex="test1, test2, test3, test4, test5"
array = ex.split(/,/)
array.size.times do |i|
p array[i]
end
Essayez split(",")[i]
où i
est l'index dans le tableau de résultats. split
donne un tableau ci-dessous
["test1", " test2", " test3", " test4", " test5"]
dont l'élément est accessible par index.