20

希望这应该是一个简单的问题。在 Java 中,我认为它是compareTo().

如何比较两个字符串变量以确定它们是否相同?

IE:

If (string1 = string2 And string3 = string4) Then
    'perform operation
Else
    'perform another operation
End If
4

6 回答 6

23

我建议使用String.Compare方法。使用该方法,您还可以控制是否让它执行区分大小写的比较。

样本:

Dim str1 As String = "String one"
Dim str2 As String = str1
Dim str3 As String = "String three"
Dim str4 As String = str3

If String.Compare(str1, str2) = 0 And String.Compare(str3, str4) = 0 Then
    MessageBox.Show("str1 = str2 And str3 = str4")
Else
    MessageBox.Show("Else")
End If

编辑:如果要执行不区分大小写的搜索,可以使用StringComparison参数:

If String.Compare(str1, str2, StringComparison.InvariantCultureIgnoreCase) = 0 And String.Compare(str3, str4, StringComparison.InvariantCultureIgnoreCase) = 0 Then
于 2009-05-23T05:34:08.080 回答
14

在 vb.net 中,您实际上可以将字符串与=. 尽管String是引用类型,但在 vb.net=中已重新定义以对两个字符串的内容String进行区分大小写的比较。

您可以使用以下代码对此进行测试。请注意,我从用户输入中获取了其中一个值,以确保编译器不能像 Java 编译器那样对两个变量使用相同的引用,如果变量是从相同的字符串 Literal 定义的。运行程序,输入“This”并按<Enter>。

Sub Main()
    Dim a As String = New String("This")
    Dim b As String

    b = Console.ReadLine()

    If a = b Then
        Console.WriteLine("They are equal")
    Else
        Console.WriteLine("Not equal")
    End If
    Console.ReadLine()
End Sub
于 2013-02-12T15:19:42.400 回答
12
Dim MyString As String = "Hello World"
Dim YourString As String = "Hello World"
Console.WriteLine(String.Equals(MyString, YourString))

返回一个布尔值 True。此比较区分大小写。

所以在你的例子中,

if String.Equals(string1, string2) and String.Equals(string3, string4) then
  ' do something
else
  ' do something else
end if
于 2009-05-23T05:38:44.157 回答
-1

我知道这已经得到解答,但是在 2013 年以上的 VB.net(我个人使用过的最低版本)中,您可以将字符串与=运算符进行比较。这是最简单的方法。

所以基本上:

If string1 = string2 Then
    'do a thing
End If
于 2017-08-09T09:38:26.460 回答
-1

我认为这 String.Equals 是你需要的。

Dim aaa = "12/31"
            Dim a = String.Equals(aaa, "06/30")

a 将返回 false。

于 2017-09-28T16:41:57.757 回答
-3
If String.Compare(string1,string2,True) Then

    'perform operation

EndIf
于 2015-04-10T13:06:28.867 回答