Freigeben über


Zeichenfolgengrundlagen in Visual Basic

Der String Datentyp stellt eine Reihe von Zeichen dar (jeweils eine Instanz des Char Datentyps). In diesem Thema werden die grundlegenden Konzepte von Zeichenfolgen in Visual Basic vorgestellt.

Zeichenfolgenvariablen

Einer Instanz einer Zeichenfolge kann ein Literalwert zugewiesen werden, der eine Reihe von Zeichen darstellt. Beispiel:

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

Eine String-Variable kann auch einen beliebigen Ausdruck annehmen, der eine Zeichenfolge ergibt. Beispiele sind unten dargestellt:

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"

Jedes Literal, das einer String Variablen zugewiesen ist, muss in Anführungszeichen ("") eingeschlossen werden. Dies bedeutet, dass ein Anführungszeichen innerhalb einer Zeichenfolge nicht durch ein Anführungszeichen dargestellt werden kann. Der folgende Code verursacht beispielsweise einen Compilerfehler:

Dim myString As String

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

Dieser Code verursacht einen Fehler, da der Compiler die Zeichenfolge nach dem zweiten Anführungszeichen beendet und der Rest der Zeichenfolge als Code interpretiert wird. Zur Lösung dieses Problems interpretiert Visual Basic zwei Anführungszeichen in einem Zeichenfolgenliteral als ein Anführungszeichen in der Zeichenfolge. Im folgenden Beispiel wird die richtige Methode zum Einfügen eines Anführungszeichens in eine Zeichenfolge veranschaulicht:

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

Im vorherigen Beispiel werden die beiden Anführungszeichen, die vor dem Wort Look stehen, zu einem Anführungszeichen in der Zeichenfolge. Die drei Anführungszeichen am Ende der Zeile stellen ein Anführungszeichen in der Zeichenfolge und das Abschlusszeichen der Zeichenfolge dar.

String-Literale können mehrere Zeilen enthalten.

Dim x = "hello  
world"  

Die resultierende Zeichenfolge enthält Zeilenumbruchsequenzen, die Sie in Ihrem Zeichenfolgenliteral (vbcr, vbcrlf usw.) verwendet haben. Sie müssen die alte Problemumgehung nicht mehr verwenden:

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

Zeichen in Zeichenfolgen

Eine Zeichenfolge kann als Eine Reihe von Char Werten betrachtet werden, und der String Typ verfügt über integrierte Funktionen, mit denen Sie viele Manipulationen für eine Zeichenfolge ausführen können, die den manipulationen ähnelt, die von Arrays zulässig sind. Wie alle Arrays in .NET Framework sind dies nullbasierte Arrays. Sie können über die Chars Eigenschaft auf ein bestimmtes Zeichen in einer Zeichenfolge verweisen, das eine Möglichkeit bietet, auf ein Zeichen durch die Position zuzugreifen, an der es in der Zeichenfolge angezeigt wird. Beispiel:

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

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

Im obigen Beispiel gibt die Chars Eigenschaft der Zeichenfolge das vierte Zeichen in der Zeichenfolge zurück, das heißt D, und weist sie zu myChar. Sie können auch die Länge einer bestimmten Zeichenfolge über die Length Eigenschaft abrufen. Wenn Sie mehrere Arraytypmanipulationen für eine Zeichenfolge ausführen müssen, können Sie sie mithilfe Char der Funktion der Zeichenfolge in ein Array von ToCharArray Instanzen konvertieren. Beispiel:

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

Die Variable myArray enthält nun ein Array von Char Werten, die jeweils ein Zeichen aus myStringdarstellen.

Die Unveränderlichkeit von Zeichenfolgen

Eine Zeichenfolge ist unveränderlich, was bedeutet, dass der Wert nicht mehr geändert werden kann, nachdem sie erstellt wurde. Dadurch wird jedoch nicht verhindert, dass Sie einer Zeichenfolgenvariablen mehrere Werte zuweisen. Betrachten Sie das folgenden Beispiel:

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

Hier wird eine Zeichenfolgenvariable mit einem Wert erstellt und anschließend der Wert geändert.

Genauer gesagt wird in der ersten Zeile eine Instanz des Typs String erstellt und erhält den Wert This string is immutable. In der zweiten Zeile des Beispiels wird eine neue Instanz erstellt und erhält den Wert Or is it?, und die Zeichenfolgenvariable verwirft ihren Verweis auf die erste Instanz und speichert einen Verweis auf die neue Instanz.

Im Gegensatz zu anderen intrinsischen Datentypen ist String ein Verweistyp. Wenn eine Variable des Bezugstyps als Argument an eine Funktion oder Unterroutine übergeben wird, wird ein Verweis auf die Speicheradresse, an die die Daten gespeichert werden, anstelle des tatsächlichen Werts der Zeichenfolge übergeben. Im vorherigen Beispiel bleibt der Name der Variablen also gleich, verweist jedoch auf eine neue und andere Instanz der String Klasse, die den neuen Wert enthält.

Siehe auch