如何在VB中去除字符串首尾的双引号?
移除字符串首尾双引号的VB代码修正
我需要移除字符串首尾的双引号,参考了一段C#代码后改成VB版本,但无法编译:
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): error BC30198: ')' expected.
(错误出在第9行的Trim调用语句)
修正方法
VB中的String.Trim方法要求传入字符数组作为参数,这和C#的语法不同。你需要把双引号包装成字符数组,有几种写法可选:
修改后的完整代码
Imports System Module Program Sub Main(args As String()) Dim text As String = """Text""" Console.WriteLine("Original value: " & text) ' 写法1:显式声明字符数组 Dim trimmed As String = text.Trim(New Char() {""""c}) ' 写法2:省略New Char(),利用类型推断更简洁 ' Dim trimmed As String = text.Trim({""""c}) ' 写法3:用Chr(34)表示双引号,可读性更好 ' Dim trimmed As String = text.Trim({Chr(34)}) Console.WriteLine("Trimmed value: " & trimmed) End Sub End Module
错误原因说明
原代码中text.Trim('"')不符合VB语法,因为VB不支持直接传递单个字符给Trim方法,必须传入字符数组形式的参数。调整后即可正常编译,实现移除首尾双引号的功能。
内容的提问来源于stack exchange,提问作者Jon Skeet
相关产品推荐
相关产品推荐

