如何在OCaml中去掉int周围的括号

  • 本文关键字:周围 int OCaml ocaml
  • 更新时间 :
  • 英文 :


我正试图去掉围绕整数的括号,以便将其传递给int_of_string

例如,我想将(-1(传递给int_of_string,但我不知道如何首先去掉括号,以便返回-1。

我是OCaml的初学者,如果有任何帮助,将不胜感激

这里有一个函数,它返回最右边的'('和最左边的')'之间的子字符串:

let inside_parens s =
let lpar = 
try String.rindex s '('
with Not_found -> -1
in
let rpar =
try String.index s ')'
with Not_found -> String.length s
in
String.sub s (lpar + 1) (rpar - lpar - 1)

它适用于您给出的示例:

# int_of_string (inside_parens "(-1)");;
- : int = -1

如果您想处理一些尚未显示的情况,则可能需要调整代码。

您可以使用Scanf.sscanf解析字符串并提取整数分量:

(* inside_parens "(-1)" returns -1 *)
let inside_parens s = Scanf.sscanf s "(%d)" Fun.id

最新更新