如何在Erlang中从字符串中提取整数?

bd1hkmkf  于 2022-12-08  发布在  Erlang
关注(0)|答案(2)|浏览(208)

我有一个Erlang变量Code,其值为"T00059"
我想从Code中提取此值59
我试着用这段代码提取这个值"00059"

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

现在我想知道如何消除第一个非空整数前的第一个零,我的意思是,如何提取"59"
例如,如果我有这个值"Z00887",我在最后应该有这个值887

h5qlskok

h5qlskok1#

您只需执行以下操作(从交互式erl会话输出):

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

(My test with loop in erlang中的答案更详细地说明了同一问题)

llmtgqce

llmtgqce2#

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

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

相关问题