我有一个包含已知数量的double值的字符串。解析字符串并将结果插入匹配的标量变量的最简洁方法(通过C#)是什么?基本上,我想做相当于这个sscanf
语句,但在C#:
sscanf( textBuff, "%lg %lg %lg %lg %lg %lg", &X, &Y, &Z, &I, &J, &K );
...假设“textBuff
”可能包含以下内容:
"-1.123 4.234 34.12 126.4 99 22"
...并且每个值之间的空格字符数可能会有所不同。
感谢您的任何指示。
答案 0 :(得分:18)
string textBuff = "-1.123 4.234 34.12 126.4 99 22";
double[] result = textBuff
.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)
.Select(s => double.Parse(s))
.ToArray();
double x = result[0];
// ...
double k = result[5];
或
string textBuff = "-1.123 4.234 34.12 126.4 99 22";
string[] result = textBuff
.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
double x = double.Parse(result[0]);
// ...
double k = double.Parse(result[5]);
答案 1 :(得分:4)
您可以使用String.Split('',StringSplitOptions.RemoveEmptyEntries)将其拆分为“单个值”。然后它是一个直的Double.Parse(或TryParse)
答案 2 :(得分:0)
foreach( Match m in Regex.Matches(inputString, @"[-+]?\d+(?:\.\d+)?") )
DoSomething(m.Value);