📅  最后修改于: 2023-12-03 15:24:10.246000             🧑  作者: Mango
在F#中字符串是不可变的,因此我们必须使用现有的字符串来创建新的字符串。下面是几种在F#中拆分字符串的方法:
String.Split
方法可以按照给定的字符来将字符串拆分成一个字符串数组。下面是 String.Split
方法的使用示例:
let s = "Hello|World"
let arr = s.Split [|'|'|]
printfn "%A" arr
使用此方式可以将字符串 Hello|World
拆分成一个字符串数组 ["Hello", "World"]
。
另一种拆分字符串的方法是使用字符串映射,将字符串拆分成键值对的集合。下面是使用字符串映射的示例代码:
let input = "key1=value1&key2=value2&key3=value3"
let getParams (str:string) =
let pairs = str.Split('&')
pairs
|> Array.map (fun x -> x.Split('='))
|> Array.map (fun x -> x.[0], x.[1])
|> Map.ofArray
let paramsMap = getParams input
for kvp in paramsMap do
printfn "%A -> %A" kvp.Key kvp.Value
使用此方式可以将字符串 key1=value1&key2=value2&key3=value3
拆分成字符串映射 ["key1" -> "value1", "key2" -> "value2", "key3" -> "value3"]
。
还可以使用正则表达式 Regex
来拆分字符串。下面是使用正则表达式拆分字符串的示例代码:
open System.Text.RegularExpressions
let s = "Hello|World"
let regexSplit(pattern: string, input: string) =
let regex = new Regex(pattern)
regex.Split(input)
let arr = regexSplit("\|", s)
printfn "%A" arr
使用此方式可以将字符串 Hello|World
拆分成一个字符串数组 ["Hello", "World"]
。
总结
在F#中,拆分字符串有多种方式可供选择。但无论使用哪种方式,都要注意到字符串的不可变性,以及避免无意中创建了多余的字符串。