Сравнение строк в 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