OCaml 拆分字节与字符

OCaml splitting bytes vs characters

我似乎对处理这个问题的最佳方式有点困惑。目前我正在使用 Jane Street 的核心。斯普利特的签名看起来像

split : t -> on:char -> t list

这很好。但是,我注意到我键入的任何字符串都是 "Bytes" 类型。当我尝试拆分时,这会产生问题,因为它需要一个字符。我的问题是,处理这个问题的最佳方法是什么?现在我在做

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"]

可以使用正则表达式来解决您的问题:

let () = 
  let l = Str.split (Str.regexp_string " ") "My string is here" in 
  List.iter (Printf.printf "%s\n") l