在Erlang中将字符串转换为元组

5cnsuln7  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(186)

如何在Erlang中将字符串转换为元组?

A = "{"hi","how"}"

我想把它转换成

B = {"hi","how"}.

当我调用函数list_to_tuple(A)时,它给出输出:

{123,60,60,34,106,105,100,34,62,62,44,34,104,105,34,125}

而不是{"hi","how"}

izkcnapc

izkcnapc1#

您应该使用erl_scan模块将字符串标记化,并使用erl_parse将标记转换为Erlang术语。

% Note the '.' at the end of the expression inside string.
% The string has to be a valid expression terminated by a '.'.
1> Str = "{\"x\",\"y\"}.".  
"{\"x\",\"y\"}."
2> {ok, Ts, _} = erl_scan:string(Str).
{ok,[{'{',1},
     {string,1,"x"},
     {',',1},
     {string,1,"y"},
     {'}',1},
     {dot,1}],
    1}
3> {ok, Tup} = erl_parse:parse_term(Ts).
{ok,{"x","y"}}
4> Tup.
{"x","y"}

相关问题