F # - String

Di F #, tipe string mewakili teks yang tidak dapat diubah sebagai urutan karakter Unicode.

String Literals

Literal string dibatasi oleh karakter tanda kutip (").

Beberapa karakter khusus ada untuk penggunaan khusus seperti baris baru, tab, dll. Mereka dikodekan menggunakan karakter garis miring terbalik (\). Karakter backslash dan karakter terkait membuat urutan escape. Tabel berikut menunjukkan urutan escape yang didukung oleh F #.

Karakter Urutan pelarian
Menghapus \ b
Garis baru \ n
Kereta kembali \ r
Tab \ t
Garis miring terbalik \\
Tanda kutip \ "
Apostrof \ '
Karakter unicode \ uXXXX atau \ UXXXXXXXX (X menunjukkan digit heksadesimal)

Cara mengabaikan Escape Sequence

Dua cara berikut membuat compiler mengabaikan escape sequence -

  • Menggunakan simbol @.
  • Mengapit string dalam tanda kutip tiga.

Jika literal string diawali dengan simbol @, ini disebut a verbatim string. Dengan cara itu, semua escape sequence dalam string diabaikan, kecuali dua karakter tanda petik diinterpretasikan sebagai satu karakter tanda petik.

Ketika sebuah string diapit oleh tanda kutip tiga, maka semua urutan pelolosan juga diabaikan, termasuk karakter tanda kutip ganda.

Contoh

Contoh berikut menunjukkan teknik ini yang menunjukkan cara bekerja dengan XML atau struktur lain yang menyertakan tanda kutip tersemat -

// Using a verbatim string
let xmldata = @"<book author = ""Lewis, C.S"" title = ""Narnia"">"
printfn "%s" xmldata

Ketika Anda mengkompilasi dan menjalankan program, itu menghasilkan output berikut -

<book author = "Lewis, C.S" title = "Narnia">

Operator Dasar pada String

Tabel berikut menunjukkan operasi dasar pada string -

Nilai Deskripsi
kumpulkan: (char → string) → string → string Membuat string baru yang karakternya merupakan hasil penerapan fungsi tertentu ke setiap karakter dari string masukan dan menggabungkan string yang dihasilkan.
concat: string → seq <string> → string Mengembalikan string baru yang dibuat dengan menggabungkan string yang diberikan dengan pemisah.
ada: (char → bool) → string → bool Menguji apakah ada karakter dari string yang memenuhi predikat yang diberikan.
forall: (char → bool) → string → bool Menguji apakah semua karakter dalam string memenuhi predikat yang diberikan.
init: int → (int → string) → string Membuat string baru yang karakternya merupakan hasil penerapan fungsi tertentu ke setiap indeks dan menggabungkan string yang dihasilkan.
iter: (char → unit) → string → unit Menerapkan fungsi tertentu untuk setiap karakter dalam string.
iteri: (int → char → unit) → string → unit Menerapkan fungsi tertentu ke indeks setiap karakter dalam string dan karakter itu sendiri.
panjang: string → int Mengembalikan panjang string.
peta: (char → char) → string → string Membuat string baru yang karakternya merupakan hasil penerapan fungsi tertentu ke setiap karakter string input.
mapi: (int → char → char) → string → string Membuat string baru yang karakternya merupakan hasil penerapan fungsi tertentu ke setiap karakter dan indeks string input.
replikasi: int → string → string Mengembalikan string dengan menggabungkan sejumlah instance string tertentu.

Contoh berikut menunjukkan penggunaan beberapa fungsi di atas -

Contoh 1

Fungsi String.collect membangun string baru yang karakternya merupakan hasil penerapan fungsi yang ditentukan ke setiap karakter dari string input dan menggabungkan string yang dihasilkan.

let collectTesting inputS =
   String.collect (fun c -> sprintf "%c " c) inputS
printfn "%s" (collectTesting "Happy New Year!")

Ketika Anda mengkompilasi dan menjalankan program, itu menghasilkan output berikut -

H a p p y N e w Y e a r !

Contoh 2

Fungsi String.concat menggabungkan urutan string tertentu dengan pemisah dan mengembalikan string baru.

let strings = [ "Tutorials Point"; "Coding Ground"; "Absolute Classes" ]
let ourProducts = String.concat "\n" strings
printfn "%s" ourProducts

Ketika Anda mengkompilasi dan menjalankan program, itu menghasilkan output berikut -

Tutorials Point
Coding Ground
Absolute Classes

Contoh 3

Metode String.replicate mengembalikan string dengan menggabungkan sejumlah instance string yang ditentukan.

printfn "%s" <| String.replicate 10 "*! "

Ketika Anda mengkompilasi dan menjalankan program, itu menghasilkan output berikut -

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