2013-03-17 78 views
9

我在C#以下字符串:更換雙引號以一個單引號

string ptFirstName = tboxFirstName.Text; 

ptFirstName回報:"John"

我想將其轉換爲'John'

我已經試過的許多變化以下,但我永遠不能用雙引號替換雙引號:

ptFirstName.Replace("\"", "'"); 

有人可以啓發我嗎?

我的目標是寫一個XML文件:

writer.WriteAttributeString("first",ptFirstName); // where ptFirstName is 'John' in single quotes. 
+0

1.'Replace'返回一個* new *字符串2.爲什麼要將數據寫入'WriteAttributeString'? (在任何一種情況下,它都應該被編碼爲「正確」。) – 2013-03-17 01:42:05

+0

這是因爲我需要SD卡中的格式,讀取它的設備讀取它尋找單引號 - 這就是它的方式... – user2058253 2013-03-17 02:14:04

回答

16

原因

ptFirstName.Replace("\"", "'"); 

不工作是string是不可改變的。您需要使用

ptFirstName = ptFirstName.Replace("\"", "'"); 

改爲。這是一個demo on ideone

1

我猜你沒有在文本框中輸入"John",而只是John,當你設置斷點並在Visual Studio中查看變量時,你會看到字符串周圍的引號?

如果是這樣,那麼意識到引號不是字符串的一部分,而只是向您指示該值是一個字符串。它們由調試器添加。如果你這樣做:

Console.WriteLine(ptFirstName); 

你不會看到引號。

+0

所以我想我一直在適當地轉換它。但是,當我寫入我的XML文件,並且我希望xml文件顯示'約翰'而不是'約翰',如下面的例子中,我絆倒... <患者第一='約翰'最後='Doe '>也許我的問題應該是,如何使用writer.WriteAttributeString(「first」,ptFirstName)寫入我的xml文件;並沒有結束雙引號? (我需要這個,因爲我寫這個SD卡,然後讀取其他設備需要單引號格式..) – user2058253 2013-03-17 02:10:56