2011-09-22 131 views

回答

5

ArrayList?如果元素是字符串或整数 - 只需使用一些独特的分隔符将它们连接起来,然后再分割回另一侧的数组。

如果你想发送任意Serializable对象的ArrayList,你将不得不序列化它,使用Java serialization。但是,这将产生byte[]数组而不是一个字符串。如果你受限于文本协议,那么你将不得不使用Base64编码或类似。

0

这取决于它是否能够提供您的数组列表中的对象的确切字符串表示。

下一个问题是:为什么它需要是ArrayList的一个字符串represenation?

这就是说,如果真的需要一个字符串表示,JSON可以帮助你,也就是说,您的数组列表转换成JSON represenation和背部。还有JSON框架的许多有像GSON,JSON-简单等

0
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; 
     } 
+0

两个人已经错过了** java **标记。 –

0

我宁可不使用指定的二进制序列化编程语言。未来会遇到一些版本控制问题。

您可以使用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