我有一个Erlang变量Code,其值为"T00059"我想从Code中提取此值59。我试着用这段代码提取这个值"00059"。
"T00059"
59
"00059"
NewCode = string:substr(Code, 2, length(Code)),
现在我想知道如何消除第一个非空整数前的第一个零,我的意思是,如何提取"59"?例如,如果我有这个值"Z00887",我在最后应该有这个值887。
"59"
"Z00887"
887
h5qlskok1#
您只需执行以下操作(从交互式erl会话输出):
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中的答案更详细地说明了同一问题)
llmtgqce2#
此代码将跳过起始零。如果要保存它们,请将$1更改为$0
$1
$0
extract_integer([]) -> []; extract_integer([H|T]) when (H >= $1) and (H =< $9) -> [H] ++ T; extract_integer([_H|T]) -> extract_integer(T).
2条答案
按热度按时间h5qlskok1#
您只需执行以下操作(从交互式
erl
会话输出):(My test with loop in erlang中的答案更详细地说明了同一问题)
llmtgqce2#
此代码将跳过起始零。如果要保存它们,请将
$1
更改为$0