我在一个情况下,我需要发送的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