尝试替换,修剪但不能从字符串C#中删除引号

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

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

例如:

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

我试图使用“trim(),replace(),Insert()”来删除引号,但它不起作用。 我不知道。

  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 

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

谢谢。

您没有分配Trim的结果或替换为字符串。

你需要做点什么

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

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

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

由于字符串在.NET中是不可变的 ,因此无法更改其值。 这意味着对字符串的每次写操作都会生成一个新字符串。

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

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

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

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

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