【问题标题】:How to extract integer from a string in Erlang?如何从 Erlang 中的字符串中提取整数?
【发布时间】:2021-02-05 17:08:36
【问题描述】:

我在 erlang 中有这个变量 Code 有这个值 "T00059"

我想从代码中提取这个值59

我尝试用这段代码提取这个值"00059"

NewCode = string:substr(Code, 2, length(Code)),

现在我想知道如何消除第一个非空整数之前的第一个零。我的意思是我们如何提取"59"

例如,如果我有这个值"Z00887",我应该在最后有这个值887

【问题讨论】:

    标签: erlang


    【解决方案1】:

    您可以简单地做(从交互式erlsession 输出):

    1> Code = "Z00887",
    1> {NewCode, _Rest} = string:to_integer(string:substr(Code, 2, length(Code))),
    1> NewCode.
    887
    

    (我在test with loop in erlang 中的回答对同一问题进行了更详细的说明)

    【讨论】:

      【解决方案2】:

      此代码将跳过起始零。如果要保存它们,请将 $1 更改为 $0

      extract_integer([]) -> [];
      extract_integer([H|T]) when (H >= $1) and (H =< $9) -> [H] ++ T;
      extract_integer([_H|T]) -> extract_integer(T).
      

      【讨论】:

      • 你能解释一下吗?
      猜你喜欢
      • 1970-01-01
      • 2020-07-06
      • 2017-07-07
      • 2020-07-20
      • 1970-01-01
      相关资源
      最近更新 更多