Fsharp: Convert String

By Xah Lee. Date: . Last updated: .

Convert string to int, float, byte array

// string to int
printfn "%O" ((int "123").GetType())
// System.Int32

// string to float
printfn "%O" ((float "3.4").GetType())
// System.Double

// string to byte array
printfn "%O" ("abc"B .GetType())
// System.Byte[]
xtodo

Split string to chars

let xtext = "some 世界"
let xchars = xtext.ToCharArray()
printfn "%A" xchars
// [|'s'; 'o'; 'm'; 'e'; ' '; 'Σ'; '╕'; 'û'; 'τ'; 'ò'; 'î'|]
let xtext = "some 世界"
let xcharsSeq: seq<char> = xtext
printfn "%A" xcharsSeq
// "some 世界"
open System

let xtext = "🦋café"

printfn "%A" (xtext .EnumerateRunes() |> Seq.map string)
// seq ["🦋"; "c"; "a"; "f"; ...]

printfn "%A" (xtext .EnumerateRunes() |> Seq.map string |> Seq.toList)
// ["🦋"; "c"; "a"; "f"; "é"]
let xtext = "hello世界👨‍🚀"

// 2. char seq  (very idiomatic in F# — lazy, composable)
let charsSeq: seq<char> = xtext            // string implements seq<char> directly!

// 3. char list  (if you really want an immutable list)
let charsList: char list = xtext |> List.ofSeq           // or Seq.toList xtext
// or more explicit:
let charsList2 = xtext.ToCharArray() |> Array.toList

// 4. As array using array comprehension (less common)
let charsArray3 = [| for c in xtext -> c |]

// 5. If you want to treat it as a sequence and do something with it immediately
let example =
    xtext
    |> Seq.map (fun c -> System.Char.ToUpper c)
    |> Seq.toArray

Fsharp, String