尝试替换,修剪但不能从字符串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