public class A {
String rever(String str)
{
String string;
String[] temp=str.split(" ");
int len=temp.length;
String[] tt={};
int i=0;
int j=0;
for(i=0,j=0;i<len;i++)
{
tt[j]=temp[len-i-1];
j++;
}
string=tt.toString();
return string;
}
    public static void main(String[] args) {
     A aa=new A();
        String str="i am an student!";
        System.out.println(aa.rever(str));
}
}

解决方案 »

  1.   

    String[] tt={}; 
    改为
    String[] tt= new String[len]; 
    数组声明时必须指定大小
      

  2.   

    String[] tt={}; 
    表明该数组是一个空数组
    tt[0]就已经越界了
      

  3.   

    我该过来了
    但怎么输出是:[Ljava.lang.String;@1729854
      

  4.   

    tt是一个数组,他没有重写toString方法
    tt.toString()只是调用Object的toString()方法
      

  5.   

    public class A { 
    String rever(String str) 

    String string=""; 
    String[] temp=str.split(" "); 
    int len=temp.length; 
    String[] tt= new String[len]; 
    int i=0; 
    int j=0; 
    for(i=0,j=0;i <len;i++) 

    tt[j]=temp[len-i-1]; 
    j++; 

    for( i=0;i<tt.length;i++)
    {
     string +=tt[i].toString(); 
    }
    return string; 

        public static void main(String[] args) { 
        A aa=new A(); 
            String str="i am an student!"; 
            System.out.println(aa.rever(str)); 

    }
    这样稍微改动一下就ok了 呵呵
      

  6.   

    你String数组tt中存的本来就是String,不用再调用toString()方法,我把程序改了一下:public class A { 
      void rever(String str) { 
        String[] temp=str.split(" "); 
        int len=temp.length; 
        String[] tt=new String[len]; 
        int i=0; 
        int j=0; 
        for(i=0,j=0;i <len;i++) { 
          tt[j]=temp[len-i-1]; 
          System.out.println(tt[j]);
          j++; 
        } 
      } 
      public static void main(String[] args) { 
        A aa=new A(); 
        String str="i am a student!"; 
        aa.rever(str);
      } 
    }编译通过,输出为:
    student!
    a
    am
    i
      

  7.   

    String[] tt= new String[len]; 
    就可以了