2017-04-13 41 views
0

我正在製作一個可以將excel文件轉換爲CSV文件的應用程序。試過替換,修剪但不能刪除字符串中的引號C#

但是,某些字符串包含一個引號,所以當CSV導出時,某些字符串被分成兩個單元格,它們應該位於一個單元格中。

例如:

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

我試圖用 「修剪(),替換(),插入()」 中刪除了報價,但它不工作。我不知道方式。

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 

我嘗試了很多解決方案,但它不起作用。問題是什麼?

感謝。

+2

你在哪裏assing字符串操作的結果?字符串是不可變的,意思是'.Trim()'和'.Replace()'返回*新字符串。一個簡單的'myString.Replace(「\」「,」「)'就足夠了。 –

+0

我會假設(因爲它是電視產品)它不是引號'''標記,但表示英寸''''[wiki]( https://en.wikipedia.org/wiki/Prime_%28symbol%29) –

回答

5

您沒有將修剪或替換的結果分配給字符串。

你需要做的是這樣

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

看你的評論,如果你不喜歡的String.Empty,那麼你需要做的

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

'String.Empty'和'「」'是相同的。 –

+1

是的。我只是覺得string.Empty很整潔。 – Stuart

+1

@Stuart我同意你的意見。 (順便說一下,Panagiotis不是OP) –

2

由於strings are immutable in .NET,你不能改變他們的價值。這意味着在字符串的每個寫操作上都會創建一個新字符串。

因此,每個'修改'一個字符串的方法都會返回一個新的字符串。因此,您必須指定該值:

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