2017-06-12 96 views
-5

如何作爲分隔符與-ve數字劈RUBY例如 如果x = 989-7516-354 如果我們用現在被那麼它應該打印 9,8,9,5, 1,6,5,4拆分負數作爲分隔符

+3

什麼是 「-ve」 是什麼意思?什麼是'989-7516-354',一個字符串?你的結果/輸出與分隔符有什麼關係? '-7'和'-3'似乎不見了。如果它們是分隔符,結果應該是'989','516'和'54'。 – Stefan

回答

0
x.split(/-\d/).map{|n| n.split(//)}.flatten 
2

你的問題不是很清楚。以負數分隔(假設:單個數字)作爲分隔符將給予

["989", "516", "54"]

爲了得到想要的輸出,試試這個。

x = "989-7516-354" 
x.gsub(/-\d/, '').chars 
# => ["9", "8", "9", "5", "1", "6", "5", "4"] 
0
x = '989-7516-354' 
x.split(/(-\d)?/).map(&:to_i).reject(&:negative?) 
# => [9, 8, 9, 5, 1, 6, 5, 4] 
+0

這不是預期的輸出。 – Santhosh

+0

@Santhosh ty指出這一點,我編輯了我的答案 – MikDiet

0

感謝a negative lookbehind,你只需要scan-爲前面數字的字符串:

"989-7516-354".scan(/(?<!-)\d/) 
# => ["9", "8", "9", "5", "1", "6", "5", "4"]