Сравнение строк в vb

Надеюсь, это должен быть простой вопрос. В java я думаю, что это compareTo().

Как сравнить 2 строковые переменные, чтобы определить, являются ли они одинаковыми?

т

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

Ответы

Ответ 1

Я бы предложил использовать метод 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

Ответ 2

Dim MyString As String = "Hello World"
Dim YourString As String = "Hello World"
Console.WriteLine(String.Equals(MyString, YourString))

возвращает bool True. Это сравнение чувствительно к регистру.

Итак, в вашем примере

if String.Equals(string1, string2) and String.Equals(string3, string4) then
  ' do something
else
  ' do something else
end if

Ответ 3

В vb.net вы можете сравнить строки с =. Несмотря на то, что String является ссылочным типом, в vb.net = on String было переопределено, чтобы провести сравнение содержимого двух строк с учетом регистра.

Вы можете проверить это с помощью следующего кода. Обратите внимание, что я взял одно из значений из пользовательского ввода, чтобы убедиться, что компилятор не может использовать одну и ту же ссылку для двух переменных, таких как компилятор Java, если бы переменные были определены из одного и того же строкового литерала. Запустите программу, введите "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

Ответ 4

Я знаю, что на это был дан ответ, но в VB.net до 2013 года (самый низкий, который я лично использовал) вы можете просто сравнить строки с оператором =. Это самый простой способ.

Итак, в основном:

If string1 = string2 Then
    'do a thing
End If

Ответ 5

Я думаю, что это String.Equals - это то, что вам нужно.

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

a вернет false.

Ответ 6

If String.Compare(string1,string2,True) Then

    'perform operation

EndIf