Строка
ex="test1, test2, test3, test4, test5"
когда я использую
ex.split(",").first
он возвращается
"test1"
Теперь я хочу получить оставшиеся элементы, то есть «test2, test3, test4, test5». Если я использую
ex.split(",").last
он возвращает только
"test5"
Как сделать так, чтобы все оставшиеся предметы пропустили первый?
split
(String
метод) наArray
?Ответы:
Попробуй это:
first, *rest = ex.split(/, /)
Теперь
first
будет первое значение,rest
будет остальная часть массива.источник
rest
содержит только "test2".first,*rest = ex.split(/,/)
first, *rest = ex.split(/,/)
действительно было то, что я имел в виду. Спасибо, что прояснили это.things = ex.split(/,/); things[1..-1]
ex.split(',', 2).last
Цифра 2 в конце говорит: разбить на 2 части, не более.
обычно при разделении значение будет разрезано на столько частей, сколько возможно, используя второе значение, вы можете ограничить количество частей, которые вы получите. Использование
ex.split(',', 2)
даст вам:["test1", "test2, test3, test4, test5"]
в виде массива вместо:
["test1", "test2", "test3", "test4", "test5"]
источник
split
снова, если вам нужны все значения, кроме первых, в виде массива, а не строки. Тем не менее хороший трюк. Кроме того, использованиеex.split(',', 2).last
не вернет указанный массив, а только его последнее значение, верно?Поскольку у вас есть массив, то, что вам действительно нужно
Array#slice
, это не такsplit
.rest = ex.slice(1 .. -1) # or rest = ex[1 .. -1]
источник
ex.split(/, /).slice(1..-1)
получить все элементы, кроме первых, при условии, что вас не интересует первое значение.Вероятно, вы опечатали несколько вещей. Насколько я понимаю, вы начинаете со строки, например:
string = "test1, test2, test3, test4, test5"
Затем вы хотите разделить его, чтобы оставить только значимые подстроки:
array = string.split(/, /)
И в итоге вам понадобятся только все элементы, кроме первого:
# 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
Это ответило на ваш вопрос?
источник
ex="test1,test2,test3,test4,test5" all_but_first=ex.split(/,/)[1..-1]
источник
Извините, что немного опоздали на вечеринку, и немного удивлен, что никто не упомянул метод drop :
ex="test1, test2, test3, test4, test5" ex.split(",").drop(1).join(",") => "test2,test3,test4,test5"
источник
если вы хотите использовать их как массив, который уже знал, иначе вы можете использовать каждый из них как другой параметр ... попробуйте это:
parameter1,parameter2,parameter3,parameter4,parameter5 = ex.split(",")
источник
Вы также можете сделать это:
String is ex="test1, test2, test3, test4, test5" array = ex.split(/,/) array.size.times do |i| p array[i] end
источник
Попробуйте,
split(",")[i]
гдеi
находится индекс в массиве результатов.split
дает массив ниже["test1", " test2", " test3", " test4", " test5"]
к элементу которого можно получить доступ по индексу.
источник