我在一個情況下,我需要發送的ArrayList中的網絡中,但我需要將其轉換成字符串的形式。的ArrayList轉換爲字符串,並轉換字符串返回到ArrayList的
現在在目的地我想這個字符串轉換成ArrayList的訪問單個元素。
請告訴我,我怎麼可以轉換轉換後的字符串(從ArrayList中)返回的ArrayList。
什麼我在一個情況下,我需要發送的ArrayList中的網絡中,但我需要將其轉換成字符串的形式。的ArrayList轉換爲字符串,並轉換字符串返回到ArrayList的
現在在目的地我想這個字符串轉換成ArrayList的訪問單個元素。
請告訴我,我怎麼可以轉換轉換後的字符串(從ArrayList中)返回的ArrayList。
什麼ArrayList
?如果元素是字符串或整數 - 只需使用一些獨特的分隔符將它們連接起來,然後再分割回另一側的數組。
如果你想發送任意Serializable
對象的ArrayList
,你將不得不序列化它,使用Java serialization。但是,這將產生byte[]
數組而不是一個字符串。如果你受限於文本協議,那麼你將不得不使用Base64編碼或類似。
這取決於它是否能夠提供您的數組列表中的對象的確切字符串表示。
下一個問題是:爲什麼它需要是ArrayList的一個字符串represenation?
這就是說,如果真的需要一個字符串表示,JSON可以幫助你,也就是說,您的數組列表轉換成JSON represenation和背部。還有JSON框架的許多有像GSON,JSON-簡單等
private string ArrayListToString(System.Collections.ArrayList list)
{
string CStr = "";
foreach (string str in list)
{
CStr += str;
CStr += "<b>";
}
return CStr;
}
private System.Collections.ArrayList ArrayListToString(string CStr)
{
System.Collections.ArrayList list = new System.Collections.ArrayList();
string[] seperator = { "<b>" };
string[] words = CStr.Split(seperator, StringSplitOptions.RemoveEmptyEntries);
foreach (string str in words)
{
list.Add(str);
}
return list;
}
兩個人已經錯過了** java **標記。 –
我寧可不使用指定的二進制序列化編程語言。未來會遇到一些版本控制問題。
您可以使用JSON格式,請使用JSONArray.toString和JSONArray.fromObject(串)串行/ deserial
如果您需要在速度和空間性能,
我建議谷歌協議緩衝器,它是一種以高效但可擴展格式編碼結構化數據的方式。谷歌幾乎所有的內部RPC協議和文件格式都使用Protocol Buffers。
協議緩衝器具有比XML序列化結構化數據的許多優點。協議緩衝區:
* are simpler
* are 3 to 10 times smaller
* are 20 to 100 times faster
* are less ambiguous
* generate data access classes that are easier to use programmatically
數組列表包含什麼?字符串?整型? – aioobe