String 在erlang中将整个列表设置为字符串

String 在erlang中将整个列表设置为字符串,string,list,erlang,String,List,Erlang,我试着做以下几点 S = lists:concat(A) ++ " " ++ [254,874] ++ "\n". 它给我错误信息 ** exception error: no match of right hand side value [51,50,52,51,53,54,53,54,55,54,54,53,52,51,32,254,874,10] 但它对字符串值“[254874]”工作正常 如何使[254874]到“[254874]”找到答案 A = [254,876]. lists:

我试着做以下几点

S = lists:concat(A) ++ " " ++ [254,874] ++ "\n".
它给我错误信息

** exception error: no match of right hand side value [51,50,52,51,53,54,53,54,55,54,54,53,52,51,32,254,874,10]
但它对字符串值“[254874]”工作正常

如何使[254874]到“[254874]”找到答案

A = [254,876].
lists:flatten(io_lib:format("~p",[A])).
这给出了精确的结果 “[254876]”

您可能忘记了先前计算的
f
。请在使用命令之前尝试:

1> f(S).
ok
2> S = lists:concat(A) ++ " " ++ [254,874] ++ "\n".
此外,您可以使用
$[
$]
在ASCII中指示
“[”“]””

3> $[.
91
4> $].
93
5> S = lists:concat(A) ++ " " ++ [91,254,874,93] ++ "\n".

将整数列表转换为字符串的步骤

对于你的情况,我会:

[A, B] = [254,876],
C = "[" ++ integer_to_list(A) ++ "," ++ integer_to_list(B) ++ "]".
对于更一般的情况:

-module(l2s).
-compile(export_all).

list_to_string([H|List]) ->
    list_to_string(List, "[" ++ integer_to_list(H)).

list_to_string([], String) -> String ++ "]";

list_to_string([H | List], String) ->
    list_to_string(List, String ++ "," ++ integer_to_list(H)).
测试:


欢迎来到堆栈溢出。对于堆栈溢出,不鼓励使用仅代码的答案,因为它们没有解释堆栈溢出是如何解决问题的。请编辑您的答案,解释此代码的作用以及它如何回答问题,以便对OP以及其他有类似问题的用户有用。
Eshell V7.3  (abort with ^G)
1> A = [1,2,3,4,5].
[1,2,3,4,5]
2> l2s:list_to_string(A).
"[1,2,3,4,5]"
"["++lists:concat(lists:join(",",A))++"]".
"[1,2,3,4]"