如何从Preference将String转换回Array

时间:2013-02-18 10:35:55

标签: java android arrays string android-preferences

InetAddress.getAllByName(host);以下面的格式返回数组

www.google.com/74.233.233.22
www.google.com/74.233.233.21
www.google.com/74.233.233.23  

我将上述结果转换为字符串并存储在Android共享首选项中

String all = inetAddress[i].toString();

现在,当我从偏好设备中检索回来时,它会返回String,这很明显,但我希望它采用数组格式,如inetAddress[i]

www.google.com/74.233.233.22 
www.google.com/74.233.233.21
www.google.com/74.233.233.23  

我该怎么做?

2 个答案:

答案 0 :(得分:0)

您可以使用InetAddress.getByName("yourstring")

从字符串创建InetAddress

遍历您的字符串并将其转换为InetAddresses -

String[] addresses = getStringArrayOfAddresses();
InetAddress[] inets = new InetAddress[addresses.length];
for ( int i = 0; i < addresses.length; i++ ) {
    inets[i] = InetAddress.getByName(addresses[i]);
}

如果您的String是一个长字符串,则可以使用split() String方法拆分此字符串。

String addresses = "www.google.com/74.233.233.22 www.google.com/74.233.233.21";
String[] addrSplit = addresses.split(" ");
System.out.println(addrSplit[0]); // will give www.google.com/74.233.233.22 

答案 1 :(得分:0)

我只建议这样做,因为您正在保存网络操作的结果。显然这很慢,你不想继续重复它。

Java数组是实现Serializable的对象。将数组写入文件然后在稍后从文件中解组它非常简单。您的首选项将是一个字符串,其中包含数据序列化的文件的名称。

在此处查看答案以获取代码:

Android - SharedPreferences with serializable object