忽略逗号分析的字符串中的逗号

时间:2012-11-14 21:10:25

标签: c#

因此,假设我有一个字符串输入到像这样设置的Excel文档中

output.WriteLine(string.Format("{0},{1},{2},{3}",
                                                   var1,
                                                   var2,
                                                   var3,
                                                   var4
                                                   ));

现在通常会将每个var输入一个单独的单元格。 但是,我发现如果我的var之一中有一个逗号,它会将其视为一个单元格结尾,然后转到下一个。如何在保持设置的同时忽略var中的逗号?

3 个答案:

答案 0 :(得分:6)

我假设这是您正在创建的CSV文件。因此,您需要使用双引号将包含逗号的值包装起来。你可以包装所有东西(这更容易,如:

output.WriteLine(string.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\"",
                                                   var1,
                                                   var2,
                                                   var3,
                                                   var4
                                                   ));

或者您可以编写一个小辅助函数,如:

public string EncodeCell(string value) {
   return value.Contains(",") ? String.Format("\"{0}\"", value) : value;
}

然后做:

output.WriteLine(string.Format("{0},{1},{2},{3}",
                                                   EncodeCell(var1),
                                                   EncodeCell(var2),
                                                   EncodeCell(var3),
                                                   EncodeCell(var4)
                                                   ));

答案 1 :(得分:1)

在插入您选择的转义序列之前,先转义var中的逗号。

答案 2 :(得分:1)

取决于您希望如何输入逗号。最简单的事情:

var1.Replace(",", "string to replace comma for")
var2.Replace(",", "string to replace comma for")
var3.Replace(",", "string to replace comma for")
...

使用list / array和String.Join也会更容易。