2016-06-25 39 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'中没有双重空格为止。

相关问题