Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der string Typ stellt unveränderlichen Text als Abfolge von Unicode-Zeichen dar.
string ist ein Alias für System.String in .NET.
Bemerkungen
Zeichenfolgenliterale werden durch das Anführungszeichen (") getrennt. Das umgekehrte Schrägstrichzeichen ( \ ) wird verwendet, um bestimmte Sonderzeichen zu codieren. Der umgekehrte Schrägstrich und das nächste Zeichen werden als Escapesequenz bezeichnet. Escapesequenzen, die in F#-Zeichenfolgenliteralen unterstützt werden, werden in der folgenden Tabelle angezeigt.
| Charakter | Escape-Sequenz |
|---|---|
| Warnung | \a |
| Rücktaste | \b |
| Seitenvorschub | \f |
| Zeilenvorschub | \n |
| Wagenrücklauf | \r |
| Tab | \t |
| Vertikaler Tabulator | \v |
| Rückwärtsstrich | \\ |
| Anführungszeichen | \" |
| Apostroph | \' |
| Unicode-Zeichen |
\DDD (wobei D eine Dezimalziffer angegeben wird; Bereich von 000 - 255; z \231 . B. = "ç") |
| Unicode-Zeichen |
\xHH (wobei H eine hexadezimale Ziffer; Bereich von 00 - FF; z \xE7 . B. = "ç") |
| Unicode-Zeichen |
\uHHHH (UTF-16) (wobei H eine hexadezimale Ziffer; Bereich von 0000 - FFFF, \u00E7 z. B. = "ç") |
| Unicode-Zeichen |
\U00HHHHHH (UTF-32) (wobei H eine hexadezimale Ziffer angegeben ist; Bereich von 000000 - 10FFFF; z \U0001F47D . B. = "👽") |
Von Bedeutung
Die \DDD Escapesequenz ist dezimale Schreibweise, keine oktale Schreibweise wie in den meisten anderen Sprachen. Daher sind Ziffern 8 gültig und 9 eine Sequenz von \032 Stellt ein Leerzeichen (U+0020) dar, während derselbe Codepunkt in oktaler Schreibweise der Wert sein \040würde.
Hinweis
Wird auf einen Bereich von 0 - 255 (0xFF) beschränkt, sind die \DDD und \x die Escapesequenzen effektiv der ISO-8859-1-Zeichensatz , da dies mit den ersten 256 Unicode-Codepunkten übereinstimmt.
Verbatim-Zeichenfolgen
Wenn das @-Symbol vorangestellt ist, handelt es sich bei dem Literal um eine verbatim Zeichenfolge. Das Deklarieren einer Zeichenfolge bedeutet, dass escapesequenzen ignoriert werden, mit der Ausnahme, dass zwei Anführungszeichen als ein Anführungszeichen interpretiert werden.
Dreifach zitierte Zeichenfolgen
Darüber hinaus kann eine Zeichenfolge durch dreifache Anführungszeichen eingeschlossen werden. In diesem Fall werden alle Escapesequenzen ignoriert, einschließlich doppelter Anführungszeichen. Um eine Zeichenfolge anzugeben, die eine eingebettete Zeichenfolge enthält, können Sie entweder eine Verbatim-Zeichenfolge oder eine dreifach zitierte Zeichenfolge verwenden. Wenn Sie eine Verbatim-Zeichenfolge verwenden, müssen Sie zwei Anführungszeichen angeben, um ein einzelnes Anführungszeichen anzugeben. Wenn Sie eine dreifach zitierte Zeichenfolge verwenden, können Sie die einzelnen Anführungszeichen verwenden, ohne dass sie als Ende der Zeichenfolge analysiert werden. Diese Technik kann nützlich sein, wenn Sie mit XML oder anderen Strukturen arbeiten, die eingebettete Anführungszeichen enthalten.
// Using a verbatim string
let xmlFragment1 = @"<book author=""Milton, John"" title=""Paradise Lost"">"
// Using a triple-quoted string
let xmlFragment2 = """<book author="Milton, John" title="Paradise Lost">"""
Im Code werden Zeichenfolgen mit Zeilenumbrüchen akzeptiert, und die Zeilenumbrüche werden als die in der Quelle verwendete Newlinecodierung interpretiert, es sei denn, ein umgekehrter Schrägstrich ist das letzte Zeichen vor dem Zeilenumbruch. Führende Leerzeichen in der nächsten Zeile werden ignoriert, wenn das umgekehrte Schrägstrichzeichen verwendet wird. Der folgende Code erzeugt eine Zeichenfolge str1 mit Einem Wert "abc\ndef" und einer Zeichenfolge str2 , die einen Wert "abcdef"aufweist.
let str1 =
"abc
def"
let str2 =
"abc\
def"
Zeichenfolgenindizierung und Slicing
Sie können mithilfe einer arrayähnlichen Syntax auf einzelne Zeichen in einer Zeichenfolge zugreifen. In den folgenden Beispielen werden [] Zeichenfolgen indiziert. Diese Syntax wurde in F# 6.0 eingeführt. Sie können auch Zeichenfolgen in allen Versionen indizieren .[] . Die neue Syntax wird bevorzugt.
printfn "%c" str1[1]
Die Ausgabe lautet b.
Oder Sie können Teilzeichenfolgen mithilfe der Arraysegmentsyntax extrahieren, wie im folgenden Code gezeigt.
printfn "%s" str1[0..2]
printfn "%s" str2[3..5]
Die Ausgabe lautet wie folgt.
abc
def
Sie können ASCII-Zeichenfolgen durch Arrays von nicht signierten Bytes darstellen, typ byte[]. Sie fügen das Suffix B einem Zeichenfolgenliteral hinzu, um anzugeben, dass es sich um eine ASCII-Zeichenfolge handelt. ASCII-Zeichenfolgenliterale, die mit Bytearrays verwendet werden, unterstützen dieselben Escapesequenzen wie Unicode-Zeichenfolgen, mit Ausnahme der Unicode-Escapesequenzen.
// "abc" interpreted as a Unicode string.
let str1: string = "abc"
// "abc" interpreted as an ASCII byte array.
let bytearray: byte[] = "abc"B
Zeichenfolgenoperatoren
Der + Operator kann verwendet werden, um Zeichenfolgen zu verketten und die Kompatibilität mit den .NET Framework-Zeichenfolgenbehandlungsfeatures aufrechtzuerhalten. Im folgenden Beispiel wird die Zeichenfolgenverkettung veranschaulicht.
let string1 = "Hello, " + "world"
String-Klasse
Da der Zeichenfolgentyp in F# tatsächlich ein .NET Framework-Typ System.String ist, sind alle System.String Member verfügbar.
System.String enthält den Operator, der + verwendet wird, um Zeichenfolgen, die Length Eigenschaft und die Chars Eigenschaft zu verketten, die die Zeichenfolge als Array von Unicode-Zeichen zurückgibt. Weitere Informationen zu Zeichenfolgen finden Sie unter System.String.
Mithilfe der Chars Eigenschaft von System.String, können Sie auf die einzelnen Zeichen in einer Zeichenfolge zugreifen, indem Sie einen Index angeben, wie im folgenden Code dargestellt.
let printChar (str: string) (index: int) =
printfn "First character: %c" (str.Chars(index))
Zeichenfolgenmodul
Zusätzliche Funktionen für die String Zeichenfolgenbehandlung sind im Modul im FSharp.Core Namespace enthalten. Weitere Informationen finden Sie im Zeichenfolgenmodul.