Ciąg jest
ex="test1, test2, test3, test4, test5"
kiedy używam
ex.split(",").first
wraca
"test1"
Teraz chcę uzyskać pozostałe elementy, tj. „Test2, test3, test4, test5”. Jeśli używam
ex.split(",").last
zwraca tylko
"test5"
Jak zdobyć wszystkie pozostałe przedmioty, pomijając pierwszy?
split
(String
metody) naArray
?Odpowiedzi:
Spróbuj tego:
first, *rest = ex.split(/, /)
Teraz
first
będzie pierwsza wartość,rest
a reszta tablicy.źródło
rest
zawiera tylko „test2”.first,*rest = ex.split(/,/)
first, *rest = ex.split(/,/)
rzeczywiście miałam na myśli. Dzięki za wyjaśnienie tego.things = ex.split(/,/); things[1..-1]
ex.split(',', 2).last
2 na końcu mówi: podziel na 2 części, nie więcej.
Zwykle split tnie wartość na tak wiele części, jak to możliwe, używając drugiej wartości, możesz ograniczyć liczbę otrzymanych części. Użycie
ex.split(',', 2)
da ci:["test1", "test2, test3, test4, test5"]
jako tablica, zamiast:
["test1", "test2", "test3", "test4", "test5"]
źródło
split
ponownie, jeśli chcesz, aby wszystkie wartości oprócz pierwszych były tablicą, a nie ciągiem. Wciąż niezła sztuczka. Ponadto użycieex.split(',', 2).last
nie zwróci wspomnianej tablicy, tylko jej ostatnią wartość, prawda?Ponieważ masz tablicę, to czego naprawdę chcesz, to
Array#slice
niesplit
.rest = ex.slice(1 .. -1) # or rest = ex[1 .. -1]
źródło
ex.split(/, /).slice(1..-1)
uzyskać wszystkie elementy oprócz pierwszych, zakładając, że nie interesuje Cię pierwsza wartość.Prawdopodobnie błędnie wpisałeś kilka rzeczy. Z tego, co wiem, zaczynasz od łańcucha takiego jak:
string = "test1, test2, test3, test4, test5"
Następnie chcesz go podzielić, aby zachować tylko znaczące podciągi:
array = string.split(/, /)
I na koniec potrzebujesz tylko wszystkich elementów oprócz pierwszego:
# 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
Czy to odpowiadało na twoje pytanie?
źródło
ex="test1,test2,test3,test4,test5" all_but_first=ex.split(/,/)[1..-1]
źródło
Przepraszam trochę za spóźnienie na imprezę i trochę zdziwiony, że nikt nie wspomniał o metodzie dropu :
ex="test1, test2, test3, test4, test5" ex.split(",").drop(1).join(",") => "test2,test3,test4,test5"
źródło
jeśli chcesz użyć ich jako tablicy, którą już znasz, w przeciwnym razie możesz użyć każdego z nich jako innego parametru ... spróbuj tego:
parameter1,parameter2,parameter3,parameter4,parameter5 = ex.split(",")
źródło
Możesz też to zrobić:
String is ex="test1, test2, test3, test4, test5" array = ex.split(/,/) array.size.times do |i| p array[i] end
źródło
Spróbuj,
split(",")[i]
gdziei
jest indeks w tablicy wyników.split
daje tablicę poniżej["test1", " test2", " test3", " test4", " test5"]
którego element można uzyskać za pomocą indeksu.
źródło