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:

*! *! *! *! *! *! *! *! *! *!