我在c#中有以下字符串:
string ptFirstName = tboxFirstName.Text;
ptFirstName
返回:"John"
我希望将其转换为'John'
我尝试过以下各种变体,但我永远无法用单引号替换双引号:
ptFirstName.Replace("\"", "'");
任何人都可以启发我吗?
我的目标是将其写入XML文件:
writer.WriteAttributeString("first",ptFirstName); // where ptFirstName is 'John' in single quotes.
答案 0 :(得分:18)
原因
ptFirstName.Replace("\"", "'");
不起作用是string
是不可变的。你需要使用
ptFirstName = ptFirstName.Replace("\"", "'");
代替。这是demo on ideone。
答案 1 :(得分:1)
我猜你没有在文本框中键入"John"
,只是John
,当你设置一个断点并在visual studio中查看变量时,你会看到字符串周围的引号?
如果是这样,那么意识到引号不是字符串的一部分,而只是向你指示该值是一个字符串。它们由调试器添加。如果你这样做:
Console.WriteLine(ptFirstName);
你不会看到报价。
答案 2 :(得分:0)
writer.QuoteChar ='\'';
有关详细信息,请参阅http://msdn.microsoft.com/en-ca/library/system.xml.xmltextwriter.quotechar.aspx。