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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  1. int [] a={1,2,3};
  2. String[] str={"abc","qze"};
  3. Object[] obj={a,str,"qqs"};
复制代码

我想知道这个数组怎么把里面的的int,String全部打印出来?

14 个回复

倒序浏览
遍历吧   
for(数据类型 变量名 : 数组)
{

}
回复 使用道具 举报
for(int i=0;i<a.length;i++)
{

}
回复 使用道具 举报
ノtrack 发表于 2014-5-6 15:21
遍历吧   
for(数据类型 变量名 : 数组)
{

我想用递归去实现
回复 使用道具 举报
本帖最后由 官珺伟 于 2014-5-6 17:05 编辑

楼主,请看代码:

package day02;
import java.util.*;
public class PrintArray {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                int [] a={1,2,3};
                String[] str={"abc","qze"};
                Object[] obj={a,str,"qqs"};        
                /*
                for(int x=0;x<a.length;x++){
                        System.out.print(a[x]);
                }
                System.out.println();
               
                for(int x=0;x<str.length;x++){
                        System.out.print(str[x]+",");
                }
                System.out.println();
               
               
                for(int x=0;x<obj.length;x++){
                        System.out.print(obj[x]+",");
                }               
                */
               
                for(int i:a){
                        System.out.print(i);
                }               
                System.out.println();
               
                for(String s:str){
                        System.out.print(s+",");
                }
                System.out.println();
               
                for(Object o:     obj){
                        System.out.print(o+"!");
                }
               

        }

}

点评

两种方法都在里头。一种普通FOR循环,一种高级FOR循环。  发表于 2014-5-6 17:04

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
fendoubuxi 发表于 2014-5-6 16:26
我想用递归去实现

....   递归不会            你又不说清楚。。。
回复 使用道具 举报
本帖最后由 thinkervsruler 于 2014-5-6 17:34 编辑

我想问题在于打印Object[]这个数组吧,里面有整型数组和字符串数组,直接遍历打印的话,前面两个打印出的是地址值,不是里面的字符和数字。递归我也不会做,不过可以按下面的代码达到打印要求:

  1. <font size="3">import java.util.*;
  2. class  PrintObj
  3. {
  4.      public static void main(String[] args)
  5.      {
  6.              int[] a={1,2,3};
  7.              String[] str={"abc","qze"};
  8.              Object[] obj={a,str,"qqs"};               
  9.              myPrint(obj);
  10.       }
  11.       public static void myPrint(Object[] obj)
  12.       {
  13.              //遍历obj数组
  14.              for(int k=0; k<obj.length; k++)
  15.              {
  16.                     //判断如果obj[k]是整型数组,则按下面的方式打印
  17.                     if( obj[k] instanceof int[] )
  18.                     {                                
  19.                             int[] arr =(int[]) obj[k];
  20.                             for(int i=0; i<arr.length; i++)
  21.                                    System.out.print(arr[i]+",");                                
  22.                     }

  23.                     //如果obj[k]是字符串数组类型,则按下面的方式打印
  24.                     else if(obj[k] instanceof String[])
  25.                     {
  26.                             String[] st = (String[]) obj[k];
  27.                             for(int i=0; i<st.length; i++)
  28.                                    System.out.print(st[i]+",");
  29.                     }

  30.                     //其它情况,直接输出
  31.                     else
  32.                            System.out.println(obj[k]);                        
  33.              }
  34.        }
  35. }
复制代码



评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报
本帖最后由 thinkervsruler 于 2014-5-6 18:19 编辑

还有另外一种更简单的方法,直接调用Arrays类的静态方法deepToString(),返回指定数组深层内容的字符串形式,代码如下:

import java.util.*;
class  PrintObj
{
    public static void main(String[] args)
    {
        int[] a={1,2,3};
        String[] str={"abc","qze"};
        Object[] obj={a,str,"qqs"};        
        System.out.println(Arrays.deepToString(obj));
    }
}

回复 使用道具 举报
学习学习
回复 使用道具 举报
本帖最后由 Silvester 于 2014-5-9 14:06 编辑

class Test {
        public static void main(String[] args) {
                int [] a={1,2,3};   //定义的数组
                //x为数组下标从0开始。如果倒序打印,定义x=a.length-1,然后在下递归调用时候用outPut(a,x-1),判断语句if也要改。
                final int x=0;     
                outPut(a,x);                //调用outPut方法打印,把数组和数组下标传入
        }

        public static void outPut(int a[],int x){        //x为接收数组下标        
                if (x>=a.length)
                        return;
                System.out.println(a[x]);
                outPut(a,x+1);                  //递归调用
        }
}

递归方法实现的打印,另外两个字符串数组和对象数组也是一样的道理就不多写了,与楼主共勉。

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 赞一个!

查看全部评分

回复 使用道具 举报
不太懂~~
回复 使用道具 举报
        public static void main(String[] args) {
                int [] a={1,2,3};
                String[] str={"abc","qze"};
                Object[] obj={a,str,"qqs"};
                System.out.println(obj);
                fun1(obj);
        }
       
        public static void fun1(Object[] obj) {
                for(int i =0; i<obj.length;i++) {
                        System.out.println(obj[i]);
                }
        }
回复 使用道具 举报
答案好多种啊!
回复 使用道具 举报
不是使用for循环就可以了吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马