文字列はex="test1, test2, test3, test4, test5"
です
私が使うとき
ex.split(",").first
それは戻ります
"test1"
ここで、残りの項目、つまり「 "test2、test3、test4、test5」」を取得します。私が使用する場合
ex.split(",").last
のみを返します
"test5"
最初の項目をスキップして残りのすべての項目を取得する方法は?
これを試して:
first, *rest = ex.split(/, /)
これで、first
が最初の値になり、rest
が残りの配列になります。
ex.split(',', 2).last
最後の2は、2つ以上に分割しないことを示しています。
通常、splitは値をできるだけ多くのピースに分割します。2番目の値を使用すると、取得するピースの数を制限できます。 ex.split(',', 2)
を使用すると、以下が得られます。
["test1", "test2, test3, test4, test5"]
次の代わりに配列として:
["test1", "test2", "test3", "test4", "test5"]
配列があるので、reallyが望むのは、split
ではなく Array#slice
です。
rest = ex.slice(1 .. -1)
# or
rest = ex[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
それはあなたの質問に答えましたか?
パーティーに少し遅れてすみませんが、誰も drop メソッドに言及していないことに少し驚いていました:
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]
すでに知っている配列としてそれらを使用したい場合は、それらをすべて異なるパラメーターとして使用できます...これを試してください:
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"]
その要素はインデックスによってアクセスできます。