【问题标题】:Chr(34) returning two double quotes characters instead of oneChr(34) 返回两个双引号字符而不是一个
【发布时间】:2018-01-03 15:17:18
【问题描述】:

使用 Windows 10 / Visual Studio 2017 / VB.Net Win Forms 应用程序。

由于某种原因,Chr(34) 返回的是 "" 而不是 "。

其他角色似乎工作得很好。这是我的即时窗口输出:

?Chr(34)
""""c
?Chr(39)
"'"c

【问题讨论】:

  • 引号是通过加倍到""来转义的,其他语言使用转义字符\,所以它们的等价物是\"。这个字符仍然是一个单引号字符。
  • 你为什么使用Chr(34)

标签: string vb.net winforms


【解决方案1】:

由于Chr返回一个Char类型的值,它总是包含正好一个字符,不多也不少。

您看到的是即时窗口的人工制品。

即时窗口将您的 char 显示为 VB char 文字,即“引用”,因此需要转义双引号(通过将它们加倍)。使用,nq 修饰符在即时窗口中查看未加引号的字符串和字符:

? Chr(34)
""""c
? Chr(34),nq
"

【讨论】:

    【解决方案2】:

    双引号必须以这种方式转义。尝试将 Chr(34) 发送到消息框。

    【讨论】:

      【解决方案3】:

      正如其他人所提到的,这是因为它正在被转义(显示您看到的两个 " 字符)。

      要以这种方式构建字符串(取决于您的要求),最好使用 StringBuilder 类,而不是自己将引号添加到 String 变量中。

      Dim sb as new StringBuilder
      
      sb.AppendLine("A single double quote (" + Chr(34) + ") is shown inside a string")
      
      System.diagnostics.debug.print(sb.ToString())
      

      输出窗口:

      单个双引号 (") 显示在字符串中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-02-11
        • 1970-01-01
        • 1970-01-01
        • 2018-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-29
        相关资源
        最近更新 更多