13

我在 c# 中有以下字符串:

string ptFirstName = tboxFirstName.Text;

ptFirstName返回:"John"

我希望将其转换为'John'

我尝试了以下多种变体,但我永远无法用单引号替换双引号:

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

有人可以启发我吗?

我的目标是将其写入 XML 文件:

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

3 回答 3

20

原因

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

行不通的是那string是不可变的。你需要使用

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

反而。这是关于 ideone 的演示

于 2013-03-17T01:27:04.150 回答
2

我猜你没有"John"在文本框中输入,但是John当你设置断点并在 Visual Studio 中查看变量时,你会看到字符串周围的引号?

如果是这样,那么请意识到引号不是字符串的一部分,而只是向您表明该值是一个字符串。它们由调试器添加。如果你要这样做:

Console.WriteLine(ptFirstName);

你不会看到引号。

于 2013-03-17T01:30:14.333 回答
0

writer.QuoteChar = '\'';

有关详细信息,请参阅http://msdn.microsoft.com/en-ca/library/system.xml.xmltextwriter.quotechar.aspx

于 2013-03-17T10:57:48.763 回答