сравнивая строки в vb - PullRequest
14 голосов
/ 23 мая 2009

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

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

е

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

Ответы [ 6 ]

19 голосов
/ 23 мая 2009

Я бы предложил использовать метод 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
11 голосов
/ 12 февраля 2013

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

Вы можете проверить это с помощью следующего кода. Обратите внимание, что я взял одно из значений пользовательского ввода, чтобы гарантировать, что компилятор не может использовать одну и ту же ссылку для двух переменных, как это сделал бы компилятор Java, если переменные были определены из одной и той же строки Literal. Запустите программу, наберите «This» и нажмите .

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
11 голосов
/ 23 мая 2009
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
0 голосов
/ 28 сентября 2017

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

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

a вернет false.

0 голосов
/ 09 августа 2017

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

Так что в основном:

If string1 = string2 Then
    'do a thing
End If
0 голосов
/ 10 апреля 2015
If String.Compare(string1,string2,True) Then

    'perform operation

EndIf
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...