Megosztás a következőn keresztül:


A Visual Basic karakterláncok alapjai

Az String adattípus karaktersorozatot jelöl. Minden karakter az adattípus egy példányát Char jelöli. Ez a témakör a Visual Basic sztringjeinek alapfogalmait ismerteti.

Sztringváltozók

Egy sztringpéldányhoz olyan literális érték rendelhető, amely karaktersorozatot jelöl. Például:

Dim MyString As String
MyString = "This is an example of the String data type"

A String változó bármely olyan kifejezést is elfogadhat, amely sztringként értékelődik. Példák az alábbiakra:

Dim OneString As String
Dim TwoString As String
OneString = "one, two, three, four, five"

' Evaluates to "two".
TwoString = OneString.Substring(5, 3)
OneString = "1"

' Evaluates to "11".
TwoString = OneString & "1"

A változóhoz String rendelt literálokat idézőjelek közé kell foglalni (""). Ez azt jelenti, hogy egy karakterláncon belüli idézőjel nem használható idézőjelként. A következő kód például fordítóhibát okoz:

Dim myString As String

' This line would cause an error.
' myString = "He said, "Look at this example!""

Ez a kód hibát okoz, mert a fordító a második idézőjel után leállítja a sztringet, a sztring fennmaradó részét pedig kódként értelmezi. A probléma megoldásához a Visual Basic a string literálban szereplő két idézőjelet egy idézőjelként értelmezi a sztringben. Az alábbi példa bemutatja, hogyan lehet idézőjelet felvenni egy sztringbe:

' The value of myString is: He said, "Look at this example!"
myString = "He said, ""Look at this example!"""

Az előző példában a szó Look előtti két idézőjel egy idézőjel lesz a karakterláncban. A sor végén található három idézőjel egy idézőjelet jelöl a karakterláncban, és a karakterlánc végződési karakterét.

A sztringkonstansok több sort is tartalmazhatnak:

Dim x = "hello
world"

Az eredményül kapott sztring a sztringkonstansban használt újsoros sorozatokat tartalmazza (vbcr, vbcrlf stb.). A régi kerülő megoldást már nem kell használnia:

Dim x = <xml><![CDATA[Hello
World]]></xml>.Value

Karakterek karakterláncokban

A sztringek értéksorozatnak Char tekinthetők, és a String típus beépített függvényekkel rendelkezik, amelyek lehetővé teszik, hogy sok olyan módosítást hajthasson végre egy sztringen, amely hasonlít a tömbök által engedélyezett manipulációkra. A .NET-keretrendszerben található összes tömbhöz hasonlóan ezek is nulla alapú tömbök. A tulajdonságon keresztül Chars hivatkozhat egy adott karakterre egy sztringben, amely lehetővé teszi a karakter elérését a sztringben megjelenő pozíció alapján. Például:

Dim myString As String = "ABCDE"
Dim myChar As Char

' The value of myChar is "D".
myChar = myString.Chars(3)

A fenti példában a Chars karakterlánc tulajdonsága a karakterlánc negyedik karakterét adja vissza, amely a D karakter, és azt hozzárendeli a myChar-hez. Egy adott sztring hosszát is lekérheti a Length tulajdonságon keresztül. Ha több tömb típusú műveletet kell végrehajtania egy karakterláncon, a karakterlánc Char függvényével átalakíthatja azt ToCharArray példányok tömbjévé. Például:

Dim myString As String = "abcdefghijklmnop"
Dim myArray As Char() = myString.ToCharArray

A változó myArray most egy értéktömböt Char tartalmaz, amelyek mindegyike egy karaktert myStringjelöl.

A sztringek nem módosíthatók

A sztring nem módosítható, ami azt jelenti, hogy az értéke nem módosítható a létrehozása után. Ez azonban nem akadályozza meg, hogy egynél több értéket rendeljen egy sztringváltozóhoz. Vegye figyelembe a következő példát:

Dim myString As String = "This string is immutable"
myString = "Or is it?"

Itt létrejön egy sztringváltozó, amely egy értéket ad meg, majd az értéke megváltozik.

Pontosabban, az első sorban létrejön egy típuspéldány String , és megadja az értéket This string is immutable. A példa második sorában létrejön egy új példány, és megadja az értéket Or is it?, a sztringváltozó pedig elveti az első példányra mutató hivatkozást, és az új példányra mutató hivatkozást tárol.

A többi belső adattípustól String eltérően ez egy referenciatípus. Ha egy hivatkozástípusú változó argumentumként egy függvénynek vagy alrutinnak ad át, a rendszer a sztring tényleges értéke helyett arra a memóriacímre mutató hivatkozást ad át, amelyben az adatokat tárolják. Az előző példában tehát a változó neve változatlan marad, de az osztály egy új és eltérő példányára String mutat, amely az új értéket tartalmazza.

Lásd még