如何将整数列表加入 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/2
和 lists: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
。
我有一个整数列表:
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/2
和 lists: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
。