如果A字符串有空格,如何添加打开和关闭引号

时间:2014-06-10 15:32:16

标签: vb.net

我试图编写一个If then语句来查看字符串中是否有空格。如果确实如此,我希望它能够提供一个"和"变量周围。以下是我目前的代码:

If ColumnText.Contains(" ") Then
                        MsgBox(""" & ColumnText & """)
                    End If
                Next

但它引用了所有内容......有什么建议吗?

3 个答案:

答案 0 :(得分:2)

要在VB的双引号字符串文字中正确地转义双引号,你需要加倍它(没有双关语)。这意味着一个空字符串""。当你在其中压缩一个引号时,你得到4个引号"""",这实际上只意味着一个双引号文字。

您应该使用:

MsgBox("""" & ColumnText & """")

而不是:

MsgBox(""" & ColumnText & """)

另一件事 - 请注意语法分析器在有3个引号时如何突出显示您的行。在这种情况下,& ColumnText &是文字的一部分,而不是内联变量。

参考:

答案 1 :(得分:1)

使用引号文字会导致难以阅读的代码,如此处所示,很容易导致错误。我发现使用(和阅读)String.Format更加容易,并以不同的方式隔离您想要调出的内容。例如:

msg = String.Format("There is a problem with [{0}]", columnText)

结果:There is a problem with [foobar]

如果您真的喜欢引号,或者需要其他类似命令行参数,那么您仍然可以通过这种方式使代码更加清晰:

Const quote As String =  """"
' or
Private quote = Convert.ToChar(34)      ' 34 is the code for the quote char
'...
msg = String.Format("There is a problem with {0}{1}{0}", quote, columnText)

结果:There is a problem with "foobar"如果要用引号包装多个内容,只需为每个引号重复{0},如图所示。

答案 2 :(得分:0)

你可以试试这个:

If ColumnText.Contains(" ") Then
                    MsgBox(Chr(34) & ColumnText & Chr(34))
                End If
            Next