黑马程序员技术交流社区
标题:
获取百度的ip地址数组,打印结果不明白
[打印本页]
作者:
郭冰川
时间:
2013-1-8 13:56
标题:
获取百度的ip地址数组,打印结果不明白
本帖最后由 郭冰川 于 2013-1-8 14:21 编辑
获取百度的ip地址数组,显示数组长度是22,遍历出来以后结果是这样:www.baidu.com/61.135.169.125www.baidu.com/61.135.169.105 求大神解答
import java.net.InetAddress;
public class Test {
public static void main(String[] args) throws Exception {
InetAddress[] ia = InetAddress.getAllByName("www.baidu.com");
for (int i = 0; i < ia.length; i++) {
System.out.println(ia
);
}
}
}
第一遍少写了,不好意思了.
{:soso_e110:}
作者:
郑传庆
时间:
2013-1-8 13:59
在打印语句这样写: System.out.print(ia[i]);
作者:
杨建聪
时间:
2013-1-8 14:00
你这代码本身就有问题,for循环里面的 i数组角标还是数组元素?,你这样写打印出来肯定是数组的哈希值!
作者:
黑马王振宇
时间:
2013-1-8 14:07
首先哥们你要知道是打印数组还是数组中的元素,
我举个简单的例子你就能明白了:
int[] a = new int [5];
这里的a,他是引用,存在stack中,可以理解为是指向,数组实际在heap中,
a中存放的是指向heap中数组的引用(理解为地址),
所以你要是s.o.p(a)的话,打印出来的是引用,
要打印值,需要遍历,以for循环为例遍历并打印值:
for(int x=0; x<a.length; x++){
System.out.println(a[x]);
}
作者:
郭冰川
时间:
2013-1-8 14:12
郑传庆 发表于 2013-1-8 13:59
在打印语句这样写: System.out.print(ia);
多谢解答,刚才那题太幼稚了
作者:
陈丽莉
时间:
2013-1-8 14:29
本帖最后由 陈丽莉 于 2013-1-8 14:30 编辑
用getAllByName()方法时,输出用for循环是为了遍历获取到的所有IP地址,而不是为了按指针输出IP地址所存字符串的。下面为改后的代码,已测试。
import java.net.InetAddress;
public class Test
{
public static void main(String args[])throws Exception
{
InetAddress[] ia=InetAddress.getAllByName("www.baidu.com");
for(InetAddress addr:ia)
{
System.out.println(addr);
}
}
}
作者:
郑传庆
时间:
2013-1-8 15:33
郭冰川 发表于 2013-1-8 14:12
多谢解答,刚才那题太幼稚了
楼上的for循环增强也可以的,但是for循环增强慎用
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2