每次我将
CharW(34)
添加到字符串时,它都会添加两个 ""
符号
示例:
text = "Hello," + Char(34) + "World" + Char(34)
文字结果
"Hello,""World"""
如何只添加一个
"
符号?
例如理想的结果是:
"Hello,"World""
我也尝试过:
text = "Hello,""World"""
但我仍然得到双
"
符号
此外。添加一个
CharW(39)
(一个 ' 符号)只会产生一个?
例如
text = "Hello," + Char(39) + "World" + Char(39)
结果
”
Hello,'World'"
为什么只有双引号时才会表现异常?我怎样才能只添加一个而不是两个?
假设您指的是旧的
Chr
函数而不是 Char
(这是一种类型)。它不会添加两个引号字符。它只添加一个。如果将字符串输出到屏幕或文件,您会看到它只添加了一个。然而,Visual Studio 调试器显示该值的 VB 字符串文字表示形式,而不是原始字符串值本身。由于转义字符串中双引号字符的方法是将两个双引号字符排成一行,因此这就是它的显示方式。例如,您的代码:
text = "Hello," + Chr(34) + "World" + Chr(34)
也可以更简单地写为:
text = "Hello,""World"""
因此,调试器只是以 VB 语法显示它,就像在 C# 中一样,调试器会将值显示为
"Hello, \"World\""
。
文本中实际上没有双引号。调试器正在引用文本,以便它看起来像在源代码中一样。如果您要在 C# 中执行相同的操作,则会使用其源代码格式显示嵌入的新行。
您可以在源代码中添加一条语句以在调试窗口中显示值,而不是使用调试器的输出。
Diagnostics.Debug.WriteLine(text)
这应该只显示单组引号。
嗯,这很容易 只需使用这个:ControlChars.Quote “你好,”&ControlChars.Quote&“世界”&ControlChars.Quote
msgbox(string.format("你好{0}世界{0}", chr(34)))