Visual Basic 2012 Voorbeelden
   

visual basic 2012 broncode voorbeelden

Blijf op de hoogte van de recente aanpassingen op vbvoorbeelden!

Microsoft Visual Studio 2012Microsoft Developers Network - Visual BasicMicrosoft .NET Framework

16.2. Strings Vergelijken

Print Email Deel op Twitter Deel op Facebook

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.

Hieronder zie je enkele voorbeelden om vergelijkingen tussen Strings uit te voeren.  Het gaat hem hier om een "logische vergelijking" tussen Strings, waarmee bedoeld wordt dat de Strings inhoudelijk vergeleken worden ( bevatten ze dezelfde tekst).
Visual Basic 2012 Broncode - Codevoorbeeld 418
Option Explicit On
Option Strict On
Class Example1
    Public Shared Sub Main()
        Dim text1 As String = "visual basic .net"
        Dim text2 As String = "visual basic .net"
        '
        Console.WriteLine(text1 = text2)                               ' True
        '
        text2 = "Visual Basic .Net"
        Console.WriteLine(text1 = text2)                               ' False
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
True
False
Alle bovenstaande vergelijkingen zijn "case-sensitive".

Gezien het String type ook de IComparable interface implementeert beschikken objectexpressie van het type String ook over een CompareTo(...)-function.
Visual Basic 2012 Broncode - Codevoorbeeld 419
Class Example2
    Public Shared Sub Main()
        Dim text1 As String = "visual basic .net"
        Dim text2 As String = "visual basic .net"
        '
        Console.WriteLine(text1.CompareTo(text2))                      ' 0
        '
        text2 = "Visual Basic .Net"
        Console.WriteLine(text1.CompareTo(text2))                      ' -1
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
0
-1
Ook een shared method Compare is aanwezig in de klasse String om verschillende String instanties te vergelijken.
Visual Basic 2012 Broncode - Codevoorbeeld 420
Class Example3
    Public Shared Sub Main()
        Dim text1 As String = "visual basic .net"
        Dim text2 As String = "Visual Basic .Net"
        '
        Console.WriteLine(String.Compare(text1, text2))                ' -1
        Console.WriteLine(String.Compare(text1, text2, True))          ' 0  (2)
        Console.WriteLine(String.Compare(text2, text1))                ' 1
        '
        Console.WriteLine(String.Compare(text1, 7, text2, 7, 5))       ' -1 (1)
        Console.WriteLine(String.Compare(text1, 7, text2, 7, 5, True)) ' 0  (2)
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
-1
0
1
-1
0
Het is mogelijk via parameters te specificiëren welk karakterbereik van de String instanties wordt vergeleken.
Op regel (1) bijvoorbeeld zullen vijf karakters in text1 vanaf karakterindex zeven, vergeleken worden met vijf karakters in text2 opnieuw vanaf karakterindex zeven.

De optionele laatste Boolean argument geeft aan of twee Strings al dan niet case-insensitive worden vergeleken (1).  De twee Strings text1 en text2 worden als gelijk beschouwd indien de casing genegeerd wordt.

Het String datatype is een referencetype.  Om fysieke gelijkheid tussen Strings na te gaan kan dan ook de "Is" operator gebruikt worden.
Twee String expressies zijn fysiek gelijk wanneer ze naar dezelfde String instantie verwijzen.
Visual Basic 2012 Broncode - Codevoorbeeld 421
Class Example4
    Public Shared Sub Main()
        Dim text1 As String = "visual basic .net"                    '       (1)
        Dim text2 As String = "visual basic .net"                    '       (1)
        '
        Console.WriteLine(text1 Is text2)                            ' True  (2)
        Console.WriteLine(text1 = text2)                             ' True
        '
        text2 = "Visual Basic .Net"
        Console.WriteLine(text1 Is text2)                            ' False
        Console.WriteLine(text1 = text2)                             ' False
        '
        text2 = "visual basic .net"                                  '       (1)
        Console.WriteLine(text1 Is text2)                            ' True
        Console.WriteLine(text1 = text2)                             ' True
        '
        text2 = "visual basic"
        text2 &= " .net"                                             '       (3)
        Console.WriteLine(text1 Is text2)                            ' False (4)
        Console.WriteLine(text1 = text2)                             ' True  (5)
        '
        Console.ReadLine()
    End Sub
End Class
Console Application Output
True
True
False
False
True
True
False
True
Bemerkt hoe text1 en text2 initieel naar hetzelfde object wijzen (2).  Ter optimalisatie wordt voor elke verschillende String literal in de code slechts één String instantie gecreëerd.  Op de regels (1) wordt steeds een identieke String literal gebruikt, hierbij zal dan ook steeds dezelfde referentie aan de desbetreffende variabelen worden toegekend.

Ondanks dat het na uitvoer van regel (3) gaat om variabelen met gelijke tekst (5), zijn er toch twee verschillende String instanties gebruikt (4).

Dit artikel is gepubliceerd op maandag 15 oktober 2012 op vbvoorbeelden, bezoek de website voor een recente versie van dit artikel of andere artikels.