String OCaml拆分字节与字符

String OCaml拆分字节与字符,string,char,byte,ocaml,String,Char,Byte,Ocaml,我似乎有点困惑,不知道如何处理这件事。目前我正在使用Jane Street的核心。Split有一个签名,看起来像 split : t -> on:char -> t list 这很好。然而,我注意到我输入的任何字符串都是“字节”类型。当我尝试拆分时会产生问题,因为它需要一个字符。我的问题是,处理这个问题的最好方法是什么?现在我正在做 String.split "My string is here" (String.get " " 0) 但这似乎很难理解。我觉得应该有更好的解决办法

我似乎有点困惑,不知道如何处理这件事。目前我正在使用Jane Street的核心。Split有一个签名,看起来像

split : t -> on:char -> t list
这很好。然而,我注意到我输入的任何字符串都是“字节”类型。当我尝试拆分时会产生问题,因为它需要一个字符。我的问题是,处理这个问题的最好方法是什么?现在我正在做

String.split "My string is here" (String.get " " 0)

但这似乎很难理解。我觉得应该有更好的解决办法。有人能帮我吗?谢谢大家!

您可以使用
s生成字符

# "x";;
- : string = "x"
# 'x';;
- : char = x
# String.split "My string is here" ' ';;
- : string list = ["My"; "string"; "is"; "here"]

可以使用regexp解决您的问题:

let () = 
  let l = Str.split (Str.regexp_string " ") "My string is here" in 
  List.iter (Printf.printf "%s\n") l 
如果要避免在多个空格上拆分空元素,则regexp应该是
“[]+”