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
我似乎对处理这个问题的最佳方式有点困惑。目前我正在使用 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