web-dev-qa-db-ja.com

VBで文字列を比較する

うまくいけば、これは簡単な質問になるはずです。 Javaでは、compareTo()だと思います。

2つの文字列変数を比較して、それらが同じかどうかを判断するにはどうすればよいですか?

すなわち:

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

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
20
Fredrik Mörk

Vb.netでは、実際に文字列を=と比較できます。 Stringは参照型ですが、vb.netではString=が再定義され、大文字と小文字を区別してcontentsの比較を行います。 2つの文字列。

これは次のコードでテストできます。 Javaコンパイラーが変数を同じ文字列リテラルから定義した場合と同様に、コンパイラーが2つの変数に同じ参照を使用できないようにするために、ユーザー入力から値の1つを取得しました。プログラムを実行し、「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
11
Tim
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
11
Robert Harvey