【问题标题】:Replacing double quote with a single quote用单引号代替双引号
【发布时间】:2013-03-05 14:21:37
【问题描述】:

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

string ptFirstName = tboxFirstName.Text;

ptFirstName 返回:"John"

我希望将其转换为'John'

我尝试了以下多种变体,但始终无法将双引号替换为单引号:

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

有人能告诉我吗?

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

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

【问题讨论】:

  • 1. Replace 返回一个 new 字符串 2. 为什么要将数据放入 WriteAttributeString? (在任何一种情况下都应该“正确”编码。)
  • 这是因为我需要它在 SD 卡中的那种格式,由设备读取它以寻找单引号 - 就是这样......

标签: c# replace


【解决方案1】:

【讨论】:

    【解决方案2】:

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

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

    Console.WriteLine(ptFirstName);
    

    你不会看到引号。

    【讨论】:

    • 所以我想我一直在正确转换它。然而,当我写入我的 xml 文件时,我希望 xml 文件显示“John”而不是“John”,如下例所示,我绊倒了…… 所以也许我的问题应该是,如何使用 writer.WriteAttributeString("first",ptFirstName); 写入我的 xml 文件。并且没有以双引号结尾? (我需要这个,因为我正在写入的 SD 卡然后被另一个需要单引号格式的设备读取..)
    【解决方案3】:

    原因

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

    不起作用的是string 是不可变的。你需要使用

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

    相反。这是demo on ideone

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-12
      • 1970-01-01
      • 2018-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-26
      相关资源
      最近更新 更多