2016-06-25 41 views
1

我有以下文字:分割字符串,然後解析爲十進制

3.024   2.184  5.0000 

在一個字符串變量

然後我拆分,並嘗試分析十進制數,這裏是我的代碼:

string linea; 
linea = "  3.024   2.184  5.0000"; 
string[] test = linea.Split(' '); 
Decimal[] numbers = Array.ConvertAll(test, decimal.Parse); 

現在,當我做了解析,我得到這個錯誤:

Input string was not in a correct format.

任何想法,爲什麼會發生這種情況?

+0

分裂可能給你留下一堆空字符串太大,這解析可能會引發錯誤的時候。像這樣:[「」,「」,「」,「」,「」,「」,「」,「3.024」,「」,「」,「」,「」,「」,「」,「」, 「」,「2.184」,「」,「」,「」,「」,「」「,」「,」「,」5.0000「] – JohnnyFun

+0

'linea'中的多個空格導致'Split()'創建多個3個要素。將這些多個空間擠壓成一個並在分割它們之前修剪兩側。 – alvits

回答

1

以從@ neouser99和評論的帶領下,我來到了這個

string linea; 
linea = "  3.024   2.184  5.0000"; 
string[] test = Regex.Replace(linea.Trim(), @"\s+", ",").Split(','); 
Decimal[] numbers = Array.ConvertAll(test, decimal.Parse); 
+1

感謝這工作! – Matias

0

添加抓空 「」 的價值觀,當你去解析時跳過它們。雖然,最好消除它們,在這種情況下(假設它不是數值之間的固定數量的空格)用遞歸空間替換每個雙重空間,直到'linea'中沒有雙重空格爲止。

相關問題