我有一个字符串,从另一个系统中读取。它基本上是一个代表一系列键值对的长字符串,这些键值对之间由空格分隔。它看起来像这样:
key:value[space]key:value[space]key:value[space]
于是我编写了以下代码进行解析:
string myString = ReadinString();
string[] tokens = myString.split(' ');
foreach (string token in tokens) {
string key = token.split(':')[0];
string value = token.split(':')[1];
. . . .
}
现在问题是一些值中有空格,因此我在顶部的“简单”拆分不再起作用。我想知道如何仍然解析出键值对列表(以空格为分隔符),现在我知道值字段中也可能有空格,因为拆分似乎不再能够工作。注意:我现在确认KEYs不会有空格,所以我只需要担心值。对于混淆表示歉意。
:
?如果没有,你将陷入困境。如果生成了长字符串,则有可能转义字符以避免问题,但这时你需要比 Split 更好的读取输入的方法。 - jdehaan:
可以被转义吗? - Jodrella:b c:d
。这是两对吗,a
=>b
和c
=>d
,还是只有一对,a
=>b c:d
? - Eric