尝试替换,修剪但不能从字符串C#

时间:2017-04-13 08:56:27

标签: c#

我正在创建一个可以将excel文件转换为CSV文件的应用程序。

但是,某些字符串包含引号,因此当CSV导出时,某些字符串会拆分为两个单元格,这两个单元格应位于一个单元格中。

例如:

"39.6cm (15.6") HD (1366x768),97cm", "Core2 M3321" //15.6"<===have a quotation mark

我尝试使用&#34; trim(),replace(),Insert()&#34;删除报价,但它不起作用。我不知道。

 if (HTMLTable.Contains("\""))
 {

    HTMLTable.Trim(new Char[] {'"'}); //Try to remove quotation
    HTMLTable.Replace("\"", ""); 
    HTMLTable.Insert(HTMLTable.IndexOf('"') - 1, "\\");
 }

 csvRecord += "\",\"" + HTMLTable + "\",0"; //Append the String into the CSV builder

我尝试了很多解决方案,但它不起作用。问题是什么?

感谢。

3 个答案:

答案 0 :(得分:5)

您没有将修剪结果或替换为字符串。

您需要执行类似

的操作
HtmlTable = HtmlTable.Replace("\"", string.Empty);

看看你的评论,如果你不喜欢string.Empty那么你需要做

HtmlTable = HtmlTable.Replace("\"", "");

答案 1 :(得分:2)

strings are immutable in .NET起,您无法更改其值。这意味着对字符串的每次写操作都会生成一个新字符串。

因此,每个“修改”字符串的方法都会返回一个新的字符串。所以你必须分配这个值:

HTMLTable = HTMLTable.Replace("\"", ""); 

答案 2 :(得分:0)

您需要知道,.Replace不会更改现有字符串,但会在替换操作后返回新字符串。

HTMLTable = HTMLTable.Replace("\"", "");

https://msdn.microsoft.com/pl-pl/library/fk49wtc1(v=vs.110).aspx