字符串是 ex="test1, test2, test3, test4, test5"
如何在Ruby中拆分字符串並獲取除第一個以外的所有項目?
當我使用
ex.split(",").first
返回
"test1"
現在我想要得到的剩餘項目,即' 「TEST2,TEST3,TEST4,TEST5」。如果我使用
ex.split(",").last
它只返回
"test5"
如何獲得所有其餘的項目跳過第一個?
字符串是 ex="test1, test2, test3, test4, test5"
如何在Ruby中拆分字符串並獲取除第一個以外的所有項目?
當我使用
ex.split(",").first
返回
"test1"
現在我想要得到的剩餘項目,即' 「TEST2,TEST3,TEST4,TEST5」。如果我使用
ex.split(",").last
它只返回
"test5"
如何獲得所有其餘的項目跳過第一個?
既然你有一個數組,你真的想要的是Array#slice
,而不是split
。
rest = ex.slice(1 .. -1)
# or
rest = ex[1 .. -1]
因此,對於一個字符串,你希望'ex.split(/,/)。slice(1 ..- 1)'得到除第一個元素以外的所有元素,假設你不是對第一個價值感興趣。 – avdgaag 2009-08-26 09:38:37
您可能錯誤鍵入了一些東西。從我所收集,你開始與一個字符串,如:
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]
ex.split(',', 2).last
的2月末說:分割成2塊,而不是更多。
通常情況下,分割會將值減少到儘可能多的部分,使用第二個值可以限制您將獲得的塊數。使用ex.split(',', 2)
會給你:
["test1", "test2, test3, test4, test5"]
爲數組,而不是:
["test1", "test2", "test3", "test4", "test5"]
缺點是你不得不'split'再次,如果你想所有,但第一個值作爲一個數組,而不是字符串。仍然是一個很好的技巧 此外,使用'ex.split(',',2).last'不會返回你提到的數組,只有它的最後一個值,對吧? – avdgaag 2009-08-26 09:42:47
複製粘貼錯誤哈哈,修復它 – user163365 2009-08-27 17:07:52
如果u想使用它們爲u已經知道一個數組,否則ü可以使用他們每個人的不同的參數... 試試這個:
parameter1,parameter2,parameter3,parameter4,parameter5 = ex.split(",")
對不起有點遲到了,有點驚訝,沒有人提到的drop方法:
ex="test1, test2, test3, test4, test5"
ex.split(",").drop(1).join(",")
=> "test2,test3,test4,test5"
你也可以這樣做:
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"]
其元素可以通過索引訪問。
等一下,你在'Array'上使用'split'(一個'String'方法)? – 2009-08-26 09:13:13
對不起guyzz ...即時使用字符串在這裏.. 我將編輯問題 – sgi 2009-08-26 09:25:51