如何在 VB 中从字符串的开头和结尾修剪双引号?

How can I trim double quotes from the start and end of a string in VB?

提问人:Jon Skeet 提问时间:5/4/2023 最后编辑:Jon Skeet 更新时间:9/14/2023 访问量:571

问:

我收到一个字符串,有时在开头和/或结尾有双引号。我需要不带引号的字符串。我尝试在这个问题中遵循 C# 代码,但这无法编译:

Imports System

Module Program
    Sub Main(args As String())
        Dim text As String = """Text"""
        Console.WriteLine("Original value: " & text)

        Dim trimmed As String = text.Trim('"')
        Console.WriteLine("Trimmed value: " & trimmed)
    End Sub
End Module

如果没有最后两行,则打印:

Original value: "Text"

我想打印最终代码:

Original value: "Text"
Trimmed value: Text

我收到的编译时错误是:

Program.vb(9,55): 错误 BC30198: ')' 预期。

(第 9 行是呼叫。Trim

我应该如何更改代码来编译和修剪引号?

字符串 vb.net 修剪

评论


答:

6赞 Jon Skeet 5/4/2023 #1

在 C# 中,不需要在字符文本中转义。"

VB 字符文字的语法略有不同。它就像一个字符串文字,但有一个后缀。要使用双引号,您需要在字符文本中将其加倍,就像在字符串文本中一样。这是您的原始示例,但已修复:C

Imports System

Module Program
    Sub Main(args As String())
        Dim text As String = """Text"""
        Console.WriteLine("Original value: " & text)
        
        Dim trimmed As String = text.Trim(""""C)
        Console.WriteLine("Trimmed value: " & trimmed)
        
    End Sub
End Module

现在输出是所需的。

请注意,这对字符串中的双引号没有帮助,因为只查看开头和结尾。若要删除所有双引号,应改用双引号。下面是一个示例:TrimString.Replace

Imports System

Module Program
    Sub Main(args As String())
        Dim text As String = """Before middle quote""After middle quote"""
        Console.WriteLine("Original value: " & text)

        Dim trimmed As String = text.Trim(""""C)
        Console.WriteLine("Trimmed value: " & trimmed)

        Dim replaced As String = text.Replace("""", "")
        Console.WriteLine("Replaced value: " & replaced)
    End Sub
End Module

输出:

Original value: "Before middle quote"After middle quote"
Trimmed value: Before middle quote"After middle quote
Replaced value: Before middle quoteAfter middle quote

当然,您可以将双引号替换为字符串,也可以改为单引号。

3赞 dbasnett 5/4/2023 #2

在 VB 中,记住要使用多少引号很烦人。我发现ControlChars.Quote很方便。

    Dim text As String = """Text"""
    text = text.Trim(ControlChars.Quote)