2013-03-21 51 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

相關問題