转换中的字符串到InetAddress错误

时间:2013-09-18 01:51:25

标签: java android

我想我的问题很容易回答这里的人吗?问题在于,当我执行以下代码时:

InetAddress addr;
addr=InetAddress.getByName("192.168.1.1");
Toast.makeText(this,"InetAddress Value: "+addr.toString(),Toast.LENGTH_LONG).show();

addr的值返回为/192.168.1.1 我想知道我做错了什么? 在此先感谢!!!

1 个答案:

答案 0 :(得分:2)

来自here的答案。

如果您只想要IP,请使用主机地址:

String address = InetAddress.getByName("stackoverflow.com").getHostAddress();

如果您只想要主机名,请使用

String hostname = InetAddress.getByName("stackoverflow.com").getHostName();

修改

您看到的斜杠可能是在您尝试将其打印出来时对返回的InetAddress执行隐式toString(),这会打印由斜杠分隔的主机名和地址(例如stackoverflow.com/64.34。 119.12)。你可以用

String address = InetAddress.getByName("stackoverflow.com").toString().split("/")[1];
String hostname = InetAddress.getByName("stackoverflow.com").toString().split("/")[0];

但是根本没有理由去这里的String中介。 InetAddress本质上保持两个字段分开。