6

我在erlang中有这个变量代码,它有这个值"T00059"

我想59Code中提取这个值。

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

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

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

例如,如果我有这个值"Z00887",我应该在最终的这个值 887中。

4

2 回答 2

9

您可以简单地执行(交互式erl会话的输出):

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

(我在 erlang 中的循环测试中的回答对同一问题进行了更详细的说明)

于 2013-02-11T21:37:40.553 回答
1

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

extract_integer([]) -> [];
extract_integer([H|T]) when (H >= $1) and (H =< $9) -> [H] ++ T;
extract_integer([_H|T]) -> extract_integer(T).
于 2013-02-11T22:51:41.897 回答