如何在 VB 中删除字符串开头和结尾的双引号?

问题描述 投票:0回答:2

我收到一个有时在开头和/或结尾有双引号的字符串。我需要不带引号的字符串。我尝试按照 this question 中的 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: ')' expected.

(第 9 行是

Trim
电话。)

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

string vb.net trim
2个回答
3
投票

在 C# 中,

"
不需要在 character literals 中转义。

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

现在输出如预期。

请注意,这 won't 有助于在字符串中使用双引号,因为

Trim
仅查看开头和结尾。要删除 all 双引号,您应该使用
String.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

当然,你可以用字符串替换双引号,或者用单引号代替。


0
投票

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

    Dim text As String = """Text"""
    text = text.Trim(ControlChars.Quote)
© www.soinside.com 2019 - 2024. All rights reserved.