Back to Top

プログラムの覚書

Category: 文字列

VB.NET 文字列が空か調べる

文字列(String)が空の文字列かを調べるに方法にて説明します。

等値演算子による比較

Dim s As String = ""

If s Is Nothing Then
    MessageBox.Show("文字列はNULLです")
End If

If s = "" Then
    MessageBox.Show("文字列は空です")
End If

If s = String.Empty Then
    MessageBox.Show("文字列はEmptyです")
End If

 

 

Equals メソッドによる比較

Dim s As String = ""

If s.Equals("") Then
    MessageBox.Show("文字列は空です")
End If

If s.Equals(String.Empty) Then
    MessageBox.Show("文字列はEmptyです")
End If

 

 

Nothing (NULL) か比較

Dim s As String = ""

If s Is Nothing Then
    MessageBox.Show("文字列はNULLです")
End If

※文字列は

Dim s As String

Dim s As String = “”

Dim s As String = Nothing

※以上3つとも値がことなりますので注意

 

 

VB.NET 文字列の比較をする

文字列の比較には、幾つかの方法があります。その方法を記載します。

文字列を比較する

Dim str1 As String = "12345"
Dim str2 As String = "67890"
    
If str1 < str2 Then
    MessageBox.Show(str2 & " の方が大きい")
End If
又は
If str1.CompareTo(str2) < 0 Then
    MessageBox.Show(str2 & " の方が大きい")
End If
又は
If String.Compare(str1, str2) < 0 Then
    MessageBox.Show(str2 & " の方が大きい")
End If


分かりにくいのでCase文にすると以下のようになります
Select Case str1.CompareTo(str2)
    Case 0
        MessageBox.Show("等しい")
    Case Is > 0
        MessageBox.Show(str1 & " の方が大きい")
    Case Is < 0
        MessageBox.Show(str2 & " の方が大きい")
End Select

 

文字列を大文字小文字を区別しないで比較する

Dim str1 As String = "ABCDEF"
Dim str2 As String = "abcdef"

If String.Compare(str1, str2, True) = 0 Then
    MessageBox.Show("等しい")
End If

 

先頭文字列または末尾文字列と一致するか比較する

Dim str As String = "ABCDEabcdeあいう"

'先頭の文字列と一致するかどうかを判断する
If str.StartsWith("ABCDE") Then
    MessageBox.Show("先頭の文字列と一致")
End If

'末尾の文字列と一致するかどうかを判断する
If str.EndsWith("あいう") Then
    MessageBox.Show("末尾の文字列と一致")
End If

 

空の文字列を比較する

Dim str As String = String.Empty
又は
Dim str As String = ""

If str = String.Empty Then
    MessageBox.Show("空の文字列")
End If

If str.Length = 0 Then
    MessageBox.Show("空の文字列")
End If

If str = "" Then
    MessageBox.Show("空の文字列")
End If

If str.CompareTo("") = 0 Then
    MessageBox.Show("空の文字列")
End If

If String.Compare(str, "") = 0 Then
    MessageBox.Show("空の文字列")
End If

以上の結果は全て空の文字列となる

 

String.Equals メソッドを使用する方法

Equals は、StringComparison列挙体の値を指定することができ、大文字と小文字を区別しない比較や、カルチャに依存した比較ができます。

Dim str1 As String = "ABCDEF"
Dim str2 As String = "abcdef"

Dim bc1 As Boolean = str1.Equals(str2, StringComparison.CurrentCulture)

Dim bc2 As Boolean = str1.Equals(str2, StringComparison.CurrentCultureIgnoreCase)