Sdílet prostřednictvím


Řetězce (F#)

string Typ představuje nezměnitelné text jako sekvence znaků Unicode .stringje alias pro String v.NET rozhraní .NET Framework.

Poznámky

Řetězcové literály jsou odděleny znakem znak uvozovek (").Znak zpětného lomítka (\) se používá k zakódování některých speciálních znaků.Zpětné lomítko a další znak společně se nazývají řídicí sekvence.Escape sekvence, které jsou podporovány v F# řetězec literály jsou uvedeny v následující tabulce.

Znak

sekvence escape

BACKSPACE

\b

Nový řádek

\n

Návrat

\r

TAB

\t

Zpětné lomítko

\\

Uvozovky

\"

Apostrof

\'

Znak Unicode

\uXXXX nebo \UXXXXXXXX (kde x označuje šestnáctkové číslice)

Pokud předchází symbol@ literál je řetězec doslovného zápisu.To znamená, že jsou ignorovány libovolné sekvence escape, s výjimkou, že dva znaky uvozovek jsou interpretovány jako uvozovky jeden znak.

Navíc může být řetězec uzavřený triple uvozovek.V tomto případě jsou ignorovány všechny sekvence escape, včetně znaků uvozovky.Chcete-li zadat řetězec, který obsahuje vložený řetězec kotované můžete použít buď řetězec doslovného zápisu nebo triple kotované řetězec.Pokud použijete řetězec doslovného zápisu, je nutné zadat dva znaky uvozovek označuje znak apostrof.Používáte-li kotované triple řetězec, můžete bez nich analyzován jako konec řetězce znaků apostrof.Tato technika může být užitečné při práci s jazyk XML nebo jiných struktur, které obsahují uvozovky.

// 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">"""

V kódu jsou přijímány řetězce, které mají konce čára a konce čára jsou interpretovány doslova jako vložení, zpětné lomítko, není poslední znak před zalomení čára .Počáteční prázdné znaky na dalším čára je ignorován, je-li je použit znak zpětného lomítka.Následující kód vytvoří řetězec str1 hodnotou "abc\n def" a řetězec str2 hodnotou "abcdef".

let str1 = "abc
     def"
let str2 = "abc\
     def"

Jednotlivé znaky v řetězci můžete přistupovat pomocí pole podobné syntaxe.

printfn "%c" str1.[1]

Výstup je b.

Nebo můžete extrahovat podřetězce pomocí syntaxe pole řezu, jak je znázorněno v následujícím kódu.

printfn "%s" (str1.[0..2])
printfn "%s" (str2.[3..5])

Výstup je takto.

abc
def

Řetězce ASCII může představovat podle pole bajtů bez znaménka, typ byte[].Přidat příponu B na řetězcový literál označující, že je řetězec ASCII.Řetězcové literály ASCII s byte pole podporují sekvence escape stejné jako řetězce Unicode , s výjimkou pro escape sekvence Unicode .

// "abc" interpreted as a Unicode string.
let str1 : string = "abc"
// "abc" interpreted as an ASCII byte array. 
let bytearray : byte[] = "abc"B 

Řetězec operátory

Zřetězení řetězců dvěma způsoby: pomocí + operátor nebo pomocí ^ operátor. + operátor zachová kompatibilitu s.NET rozhraní .NET Framework řetězec zpracování funkcí.

Následující příklad ukazuje zřetězení.

let string1 = "Hello, " + "world"

Třída String

Protože řetězec typu F# je skutečně.NET rozhraní .NET Framework String zadejte všechny String členy jsou k dispozici. Zahrnuje + operátor, který slouží k zřetězení řetězců Length vlastnosta Chars vlastnost, která vrátí řetězec jako pole znaků Unicode . Další informace o řetězcích String.

Pomocí Chars vlastnost String, jednotlivé znaky v řetězci můžete získat přístup, určení indexu, jak ukazuje následující kód.

let printChar (str : string) (index : int) =
    printfn "First character: %c" (str.Chars(index))

Řetězec modulu

Další funkce pro zpracování řetězců je součástí Stringv modul FSharp.Core obor názvů. Další informace naleznete v tématu Core.String modul (F#).

Viz také

Referenční dokumentace

String

Další zdroje

F# Language Reference