2013-03-21 24 views
-1

当用字符串附加双引号时,我遇到了erlang附加/“not”的问题?Erlang将双引号附加到字符串

Id = "1223", 
    Flag = "1", 

lists:flatten(io_lib:format("{xmlelement, \"deliverystatus\", [{\"messageid\", \"~s\"}, {\"status\", \"~s\"}], []}", [Id, Flag])). 
+1

问号是否/不足以构建问题。 – filmor 2013-03-21 11:24:15

回答

3

你的问题不是很清楚,但我想你的代码给的例子,我想你是恼火,因为结果字符串显示与\“序列,而不是单个字符

1> Id = "1223". 
"1223" 
2> Flag = "1". 
"1" 
3> lists:flatten(io_lib:format("{xmlelement, \"deliverystatus\", [{\"messageid\", \"~s\"}, {\"status\", \"~s\"}], []}", [Id, Flag])). 
"{xmlelement, \"deliverystatus\", [{\"messageid\", \"1223\"}, {\"status\", \"1\"}], []}" 

实际上,您必须记住,您在控制台中获得的是上次评估结果的图像。在你的情况下,它是一个只包含可打印字符的列表,因此shell已经选择将它显示为一个字符串。但它试图不隐藏任何信息,所以你有周围的“字符串告诉你,它是一个字符串,并且在任何特殊字符之前,在这个例子中,下面的”是字符串的一部分,而不是此字符串的分隔符。但内部只有字符“存储,您可以通过检查字符串的长度验证:

5> length(lists:flatten(io_lib:format("{xmlelement, \"deliverystatus\", [{\"messageid\", \"~s\"}, {\"status\", \"~s\"}], []}", [Id, Flag]))). 
76 
6> 

或者更简单的测试:O)

6> length("test\""). 
5 
7> lists:flatten("test\""). 
"test\"" 
8> 

如果你想显示的字符串没有这些\,使用IO:格式功能,显示在控制台的字符串:

4> io:format(lists:flatten(io_lib:format("{xmlelement, \"deliverystatus\", [{\"messageid\", \"~s\"}, {\"status\", \"~s\"}], []}", [Id, Flag]))). 
{xmlelement, "deliverystatus", [{"messageid", "1223"}, {"status", "1"}], []}ok 

和最后一个更好的结果,以字符串从ok这是IO的返回值分开:格式和s Ø显示在控制台上,让我们来添加一个回车:

8> io:format(lists:flatten(io_lib:format("{xmlelement, \"deliverystatus\", [{\"messageid\", \"~s\"}, {\"status\", \"~s\"}], []}", [Id, Flag])) ++ "~n"). 
{xmlelement, "deliverystatus", [{"messageid", "1223"}, {"status", "1"}], []} 
ok 
9> 

编辑: IO的返回值:格式总是好的,它只是在控制台上打印并返回OK。我所说的是,用io格式或长度,你可以验证返回的字符串

lists:flatten(io_lib:format("{xmlelement, \"deliverystatus\", [{\"messageid\", \"~s\"}, {\"status\", \"~s\"}], []}", [Id, Flag])), 

不包含任何'\'。如果您想记录此值以便稍后使用它或将其操作,只需将其分配给一个变量:

My_string = lists:flatten(io_lib:format("{xmlelement, \"deliverystatus\", [{\"messageid\", \"~s\"}, {\"status\", \"~s\"}], []}", [Id, Flag])), 
+0

好的,我明白你的答案。我还有一个问题是如何获得io格式的返回值并将其分配给另一个变量因为它打印给我确定字符串不是我的字符串 – user2191560 2013-03-21 14:32:20

+0

请参阅我的编辑答案 – Pascal 2013-03-21 19:34:19

相关问题