【问题标题】:OCaml creating a list of ints from stringOCaml 从字符串创建整数列表
【发布时间】:2016-08-16 09:48:09
【问题描述】:

我想读一行这样的结构:

7 12 129224 2 124 12 2 51 

并将字符串的元素放入 int 列表中,如下所示:

[7; 12; 129224; 2; 124; 12; 2; 51]

数字可以是任意大小,不考虑负数。这是我目前所拥有的:

let size_s = read_int();; (* size_s is the number of elements within the String. In this case it's 8. *)
let s = read_line();;

【问题讨论】:

    标签: ocaml


    【解决方案1】:

    我不确定您正在阅读的前 8 个。它没有出现在您的示例中。

    但是,这个旧答案显示了将字符串转换为整数列表的一种方法:How to convert a string to integer list in ocaml?

    以下是许多 int 大小的示例:

    List.map int_of_string (Str.split (Str.regexp "[^0-9]+") "123 8 67 4");;
    - : int list = [123; 8; 67; 4]
    

    【讨论】:

    • 我包含了 size_t 因为它可以用于某人的解决方案。至于您提供给我的链接,我已经看到了,但我认为它只能帮助我转换一种大小的整数,如 0、1、2、3、4、5、6,而不是可变大小的整数,231。感谢您的回复。
    • 这是不正确的。该代码适用于任何非负整数。
    • 您的解决方案是正确的,但我只是设法让它在顶层工作,我应该如何继续编译和运行程序?打开STR?我应该在像 str.cma 这样的 Linux 终端上包含任何命令吗?谢谢
    • 这是一个单独的问题。 linux 的简短答案是ocamlc -o myfile str.cma myfile.ml。你不需要打开Str,这只是为了更短的命名。代码已经使用了模块名。
    猜你喜欢
    • 1970-01-01
    • 2011-04-20
    • 2016-02-13
    • 2019-07-07
    • 2016-12-02
    • 2015-03-20
    • 1970-01-01
    • 2014-02-10
    • 2014-09-24
    相关资源
    最近更新 更多