【发布时间】:2009-09-19 16:47:38
【问题描述】:
我想 String.Split() 使用逗号作为分隔符的以下字符串:
John,Smith,123 Main Street,212-555-1212
以上内容由用户输入。如果他们在地址中输入逗号,则生成的字符串会导致 String.Split() 出现问题,因为您现在有 5 个字段而不是 4 个:
John,Smith,123 Main Street, Apt 101,212-555-1212
我可以在所有用户输入上使用 String.Replace() 将逗号替换为其他内容,然后再次使用 String.Replace() 将内容转换回逗号:
value = value.Replace(",", "*");
但是,如果用户碰巧在他们的输入中使用了占位符分隔符“*”,这仍然会被愚弄。然后你会得到额外的逗号,结果中没有星号。
我在网上看到了处理转义分隔符的解决方案,但我还没有找到解决这种看似常见情况的解决方案。我错过了什么?
编辑:这称为delimitter collision。
【问题讨论】:
-
您的问题与转义分隔符解决的问题有何不同? IE。为什么不转义分隔符?
-
您说您可以在所有用户输入上替换逗号,这听起来就像此时值是分开的。为什么然后将它们塞到一个字符串中?