2016-10-15 46 views
-3

您好使用正則表達式數值轉換具有數字數組作爲字符串:字符串在階

val original_array = Array("-0,1234567",......)它是一個字符串,我想轉換爲數值的數組。

val new_array  = Array("1234567", ........) 

我該如何在scala中實現這一目標?

使用original_array.toDouble是給錯誤

+0

爲什麼你認爲「-0,1234567」爲1234567,而不是-0.1234567? – Nyavro

+0

因爲它是數據 –

+0

@RajarshiBhadra中給出的月收入數組,請進一步解釋。你的數組不是一個字符串,因爲你聲明,它的第一個元素有兩個數字,所以我們需要你在這裏解釋你想要輸出的規則。 –

回答

1

簡單的答案是...

val arrNums = Array("123", "432", "99").map(_.toDouble) 

...但是這有點危險,因爲它會拋出,如果任何字符串的不正確的號碼。

這是比較安全......

val arrNums = Array("123", "432", "99").collect{ case n 
    if n matches """\d+""" => n.toDouble 
} 

...但你需要使用一個涵蓋所有情況下,正則表達式。這個例子不會識別浮點數(「1.1」)或負數(「-4」)。像"""-?\d*\.?\d+"""可能適合您的要求。