F # - Saiten
In F # repräsentiert der Zeichenfolgentyp unveränderlichen Text als Folge von Unicode-Zeichen.
String-Literale
Zeichenfolgenliterale werden durch das Anführungszeichen (") begrenzt.
Einige Sonderzeichen sind für spezielle Zwecke wie Zeilenumbrüche, Tabulatoren usw. vorgesehen. Sie werden mit einem Backslash-Zeichen (\) codiert. Das Backslash-Zeichen und das zugehörige Zeichen bilden die Escape-Sequenz. Die folgende Tabelle zeigt die von F # unterstützte Escape-Sequenz.
Charakter | Fluchtabfolge |
---|---|
Rücktaste | \ b |
Neue Zeile | \ n |
Wagenrücklauf | \ r |
Tab | \ t |
Backslash | \\ |
Anführungszeichen | "" |
Apostroph | \ ' |
Unicode-Zeichen | \ uXXXX oder \ UXXXXXXXX (wobei X eine hexadezimale Ziffer angibt) |
Möglichkeiten, die Escape-Sequenz zu erkennen
Die folgenden zwei Möglichkeiten bewirken, dass der Compiler die Escape-Sequenz ignoriert:
- Verwenden des @ -Symbols.
- Einschließen der Zeichenfolge in dreifache Anführungszeichen.
Wenn vor einem Zeichenfolgenliteral das @ -Symbol steht, wird es als a bezeichnet verbatim string. Auf diese Weise werden alle Escape-Sequenzen in der Zeichenfolge ignoriert, mit der Ausnahme, dass zwei Anführungszeichen als ein Anführungszeichen interpretiert werden.
Wenn eine Zeichenfolge in dreifache Anführungszeichen eingeschlossen ist, werden auch alle Escape-Sequenzen ignoriert, einschließlich doppelter Anführungszeichen.
Beispiel
Das folgende Beispiel zeigt diese Technik und zeigt, wie mit XML oder anderen Strukturen mit eingebetteten Anführungszeichen gearbeitet wird.
// Using a verbatim string
let xmldata = @"<book author = ""Lewis, C.S"" title = ""Narnia"">"
printfn "%s" xmldata
Wenn Sie das Programm kompilieren und ausführen, wird die folgende Ausgabe ausgegeben:
<book author = "Lewis, C.S" title = "Narnia">
Grundlegende Operatoren für Zeichenfolgen
Die folgende Tabelle zeigt die grundlegenden Operationen für Zeichenfolgen -
Wert | Beschreibung |
---|---|
sammeln: (char → string) → string → string | Erstellt eine neue Zeichenfolge, deren Zeichen das Ergebnis der Anwendung einer bestimmten Funktion auf jedes der Zeichen der Eingabezeichenfolge und der Verkettung der resultierenden Zeichenfolgen sind. |
concat: string → seq <string> → string | Gibt eine neue Zeichenfolge zurück, die durch Verketten der angegebenen Zeichenfolgen mit einem Trennzeichen erstellt wurde. |
existiert: (char → bool) → string → bool | Testet, ob ein Zeichen der Zeichenfolge das angegebene Prädikat erfüllt. |
forall: (char → bool) → string → bool | Testet, ob alle Zeichen in der Zeichenfolge das angegebene Prädikat erfüllen. |
init: int → (int → string) → string | Erstellt eine neue Zeichenfolge, deren Zeichen das Ergebnis der Anwendung einer bestimmten Funktion auf jeden Index und der Verkettung der resultierenden Zeichenfolgen sind. |
iter: (char → unit) → string → unit | Wendet eine bestimmte Funktion auf jedes Zeichen in der Zeichenfolge an. |
iteri: (int → char → unit) → string → unit | Wendet eine angegebene Funktion auf den Index jedes Zeichens in der Zeichenfolge und auf das Zeichen selbst an. |
Länge: Zeichenfolge → int | Gibt die Länge der Zeichenfolge zurück. |
map: (char → char) → string → string | Erstellt eine neue Zeichenfolge, deren Zeichen das Ergebnis der Anwendung einer bestimmten Funktion auf jedes der Zeichen der Eingabezeichenfolge sind. |
mapi: (int → char → char) → string → string | Erstellt eine neue Zeichenfolge, deren Zeichen das Ergebnis der Anwendung einer bestimmten Funktion auf jedes Zeichen und jeden Index der Eingabezeichenfolge sind. |
replizieren: int → string → string | Gibt eine Zeichenfolge zurück, indem eine bestimmte Anzahl von Instanzen einer Zeichenfolge verkettet wird. |
Die folgenden Beispiele zeigen die Verwendung einiger der oben genannten Funktionen -
Beispiel 1
Die Funktion String.collect erstellt eine neue Zeichenfolge, deren Zeichen das Ergebnis der Anwendung einer bestimmten Funktion auf jedes der Zeichen der Eingabezeichenfolge und der Verkettung der resultierenden Zeichenfolgen sind.
let collectTesting inputS =
String.collect (fun c -> sprintf "%c " c) inputS
printfn "%s" (collectTesting "Happy New Year!")
Wenn Sie das Programm kompilieren und ausführen, wird die folgende Ausgabe ausgegeben:
H a p p y N e w Y e a r !
Beispiel 2
Die Funktion String.concat verkettet eine bestimmte Folge von Zeichenfolgen mit einem Trennzeichen und gibt eine neue Zeichenfolge zurück.
let strings = [ "Tutorials Point"; "Coding Ground"; "Absolute Classes" ]
let ourProducts = String.concat "\n" strings
printfn "%s" ourProducts
Wenn Sie das Programm kompilieren und ausführen, wird die folgende Ausgabe ausgegeben:
Tutorials Point
Coding Ground
Absolute Classes
Beispiel 3
Die String.replicate-Methode gibt einen String zurück, indem eine bestimmte Anzahl von Instanzen eines Strings verkettet wird.
printfn "%s" <| String.replicate 10 "*! "
Wenn Sie das Programm kompilieren und ausführen, wird die folgende Ausgabe ausgegeben:
*! *! *! *! *! *! *! *! *! *!