将字符串递归拆分为char列表

时间:2019-03-03 09:54:11

标签: .net string recursion f#

我正在尝试将字符串递归拆分为char列表。这是我必须要做的:

let rec explode2 (s: string) =
  match s with 
  | "" -> []
  | s ->
    let newWord = s.[1..]
    let newArr = List.ofArray(newWord.ToCharArray())
    explode2 newWord
    newArr

我朝着正确的方向前进吗?

1 个答案:

答案 0 :(得分:2)

第一部分是正确的(用于返回列表而不是数组):

  match s with 
  | "" -> []

它处理了空字符串的情况,在递归函数中它是结束情况。

对于第二部分,您需要:

  • 将第一个字符与其余字符串分开。
  • 使用其余字符串调用函数。
  • 将第一个字符与返回的列表连接起来。

要将元素连接到列表,可以使用::运算符:

c :: lst

您要到达那里,所以要坚持下去。