F#,正确使用split方法

时间:2014-12-21 12:53:50

标签: string split f#

如何正确使用f#中的split方法?

代码:

    let a = "abc def" 

let b = a.Split [|' '|]

Console.WriteLine("{0}", b)

确实返回

 "System.String[]"

我尝试了很多变种:

 .Split([|' '|])

语言文档&其他问题并没有真正帮助。

我希望b成为:

 ["abc","def"]

感谢您的帮助。

2 个答案:

答案 0 :(得分:5)

你的Console.WriteLine是这里的实际问题,而不是你获得数组与列表的事实。只是该列表会覆盖ToString,这样才能使您的代码正常工作。

您可以使用其中任何一个来获得与数组相同的效果:

Console.WriteLine(sprintf "%A" b)
printfn "%A" b

答案 1 :(得分:2)

我认为你想要一个列表作为结果,但.Split返回一个字符串数组,而不是字符串列表。

如果您想要列表,请在致电Array.toList后致电.Split

let b = a.Split [|' '|] |> Array.toList

<强>更新

根据您的评论,如果您对结果作为数组感到满意,那么您需要更改的就是打印方式。

一种方法是使用sprintf 漂亮打印数组,如我的评论和其他答案中所述。这是另一种方式:

open System

let a = "abc def" 
let b = a.Split [|' '|]

Console.WriteLine(String.Join(";", b))