2013-03-17 44 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