字符串是
ex="test1, test2, test3, test4, test5"
当我使用
ex.split(",").first
它返回
"test1"
现在,我想获取剩余的项,即“ test2,test3,test4,test5”。如果我用
ex.split(",").last
它只返回
"test5"
如何使所有剩余的项目跳过第一个?
Answers:
试试这个:
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个部分,不多。
通常,split会将值切割成尽可能多的片段,使用第二个值可以限制将获得的片段数。使用ex.split(',', 2)
将为您提供:
["test1", "test2, test3, test4, test5"]
作为数组,而不是:
["test1", "test2", "test3", "test4", "test5"]
split
,如果要将除第一个值以外的所有值都作为数组而不是字符串,则必须再次进行。仍然是一个不错的把戏。另外,usingex.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"
ex.split(",").drop(1).join(",")
=> "test2,test3,test4,test5"
split
(String
方法)Array
?