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]"