【发布时间】:2018-03-27 20:57:21
【问题描述】:
我正在尝试逐行解析文件,每次将变量设置为等于行中的值。
示例行是:
G1 Z0.500 F7800.000
G1 X-0.336 Y13.564 F7800.000
G1 X3.205 Y13.493 E3.63071 F1800.000
我会有如下变量:
double x;
double y;
double z;
假设我解析第一行,我的输出应该是:
x = 100000;
y = 100000;
z = 0.5;
如果我解析第二行,我的输出应该是:
x = -0.336;
y = 13.564;
z = 100000;
第三行只是可能出现的另一行,但都非常相似。如果键未出现在字符串中,则值设置为 100,000。
我尝试使用这样的代码:
char[] delimiters = { 'X', 'Y', 'Z'};
string[] words = line.Split(delimiters);
但第一行返回:
z = 0.500 F7800.000
为这些键值对解析每一行的最佳方法是什么?
【问题讨论】:
-
分割空格字符并寻找与您预期的 x,y,z 字符匹配的前导字符,然后将输入的其余部分转换为双精度
-
@Amy 是的,我尝试使用分隔符 X Y 和 Z 的字符数组,但是它当然会在分隔符之后返回整个字符串。
-
请将您的尝试添加到问题中。
-
@RufusL 我并不一定意味着 null 。而是需要将其设置为我尚未决定的任意数字。
-
我不会使用 x,y,z 作为分隔符。空格是分隔符。然后检查每个段开头的字符。
标签: c# string parsing split key-value