A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 郭冰川 于 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:}

6 个回复

倒序浏览
在打印语句这样写:    System.out.print(ia[i]);                        
回复 使用道具 举报
你这代码本身就有问题,for循环里面的 i数组角标还是数组元素?,你这样写打印出来肯定是数组的哈希值!
回复 使用道具 举报
首先哥们你要知道是打印数组还是数组中的元素,
我举个简单的例子你就能明白了:
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]);
}

评分

参与人数 1黑马币 +12 收起 理由
舒远 + 12

查看全部评分

回复 使用道具 举报
郑传庆 发表于 2013-1-8 13:59
在打印语句这样写:    System.out.print(ia);

多谢解答,刚才那题太幼稚了
回复 使用道具 举报
本帖最后由 陈丽莉 于 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 14:12
多谢解答,刚才那题太幼稚了

楼上的for循环增强也可以的,但是for循环增强慎用
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马