首页 > 解决方案 > 如何将整数列表连接到 Erlang 中的字符串?

问题描述

我有一个整数列表:

X = [1, 2, 3, 4, 5, 6].

我想将字符串"1 2 3 4 5 6"作为输出。

我试过string:join(X, " ")了,但它不起作用。

我也试过_X = lists:join(X, " "),,但它导致一个空字符串“”。当我打印它时erlang:display(_X).

Erlang 中是否有内置方法可以做到这一点?

标签: erlang

解决方案


两者string:join/2lists:join/2都会产生所需的结果,但都需要先将整数转换为字符串。您可以使用列表推导来做到这一点:

1> X = [1, 2, 3, 4, 5, 6].
[1,2,3,4,5,6]
2> string:join([integer_to_list(I) || I <- X], " ").
"1 2 3 4 5 6"
3> lists:join(" ", [integer_to_list(I) || I <- X]).
["1"," ","2"," ","3"," ","4"," ","5"," ","6"]
4> lists:flatten(lists:join(" ", [integer_to_list(I) || I <- X])).
"1 2 3 4 5 6"

请注意,lists:join/2将分隔符作为其第一个参数,而string:join/2将其作为第二个参数。

另请注意,它lists:join/2返回一个新列表,其中输入列表的元素由分隔符分隔。当分隔符也是一个列表时,要获得一个平面列表,如lists:flatten/1上面的最终命令所示。

最后,请注意那string:join/2是 obsolete,你应该使用它lists:join/2


推荐阅读