如何将整数列表加入 Erlang 中的字符串?

How to join a list of integers to a string in 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 中是否有内置方法可以做到这一点?

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 returns 一个新列表,其中输入列表的元素由分隔符分隔。要在本例中分隔符也是列表时获得平面列表,请使用 lists:flatten/1,如上面最后一个命令所示。

最后,请注意 string:join/2 is obsolete,您应该使用 lists:join/2