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
我该怎么做?
答案 0 :(得分:0)
您可以使用InetAddress.getByName("yourstring")
遍历您的字符串并将其转换为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的对象。将数组写入文件然后在稍后从文件中解组它非常简单。您的首选项将是一个字符串,其中包含数据序列化的文件的名称。
在此处查看答案以获取代码: