public class MP {
public static void main(String[] args){
Object a[] = new Object[9];
a[0] = "1";
a[1] = "2";
a[2] = "8";
a[3] = "5";
a[4] = "7";
a[5] = "9";
a[6] = "13";
a[7] = "4";
a[8] = "0";
Object temp[] = new Object[9];
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length-i-1;j++){
if(((Integer)a[j]).intValue()>((Integer)a[j+1]).intValue()){
temp[i] = a[j];
a[j] = a[j+1];
a[j] = temp[i];
}
}
}
for(int k=0;k<a.length;k++){
System.out.print(temp[k]);
}
}
}
运行时有错误:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at com.zy.daoc.MP.main(MP.java:18)
如有问题,请帮忙修改

解决方案 »

  1.   

    看下我这个冒泡
    public class maoPao {
    public static int[] mp(int []arry){
    for(int i=0;i<arry.length;i++){
    for(int j=i;j<arry.length;j++){
    int temp;
    if(arry[i]>arry[j]){
    temp=arry[i];
    arry[i]=arry[j];
    arry[j]=temp;
    }
    }
    }


    return arry;

    }

    public static void main(String[] args) {
    int[] ar ={12,23,1,23,45,11,42,9,45,2,16,77,86,56,43};

    mp(ar);
    for(int i=0;i<ar.length;i++){
    System.out.print(ar[i]+" ");
    }
    }}
      

  2.   


    public class Test {
        public static void main(String[] args){
            Object a[] = new Object[9];
            a[0] = "1";
            a[1] = "2";
            a[2] = "8";
            a[3] = "5";
            a[4] = "7";
            a[5] = "9";
            a[6] = "13";
            a[7] = "4";
            a[8] = "0";
            Object temp[] = new Object[9];
            for(int i=0;i<a.length;i++){
                for(int j=0;j<a.length-i-1;j++){
    // if(((Integer)a[j]).intValue()>((Integer)a[j+1]).intValue()){  出错!!
                    if( Integer.valueOf(a[j].toString())>Integer.valueOf(a[j+1].toString()) ){
                        temp[i] = a[j];
                        a[j] = a[j+1];
                        a[j+1] = temp[i];
                    }
                }
            }
            for(int k=0;k<a.length;k++){
                System.out.println(a[k]);
            }
        }
    }
      

  3.   

    java.lang.String cannot be cast to java.lang.Integer 类型转换出错。。 
      

  4.   

    错误提示
    The operator > is undefined for the argument type(s) java.lang.Integer, 
     java.lang.Integer
    请帮忙,谢谢,在线急等
      

  5.   

    我晕 你搞那么麻烦干什么? 转来转去的public class MP {
        public static void main(String[] args){
            Object a[] = new Object[9];
            a[0] = "1";
            a[1] = "2";
            a[2] = "8";
            a[3] = "5";
            a[4] = "7";
            a[5] = "9";
            a[6] = "13";
            a[7] = "4";
            a[8] = "0";
            Object temp[] = new Object[9];
            for(int i=0;i<a.length;i++){
                for(int j=0;j<a.length-i-1;j++){
                
                    if((Integer.valueOf(a[j].toString())).intValue()>((Integer.valueOf(a[j+1].toString())).intValue())){
                        temp[i] = a[j];
                        a[j] = a[j+1];
                        a[j] = temp[i];
                    }
                }
            }
            for(int k=0;k<a.length;k++){
                System.out.print(temp[k]);
            }
        }
    }
    底下 temp 也要转换 自己转下吧 
      

  6.   


    这样写更合理呀!
    for(int j=i+1;j<arry.length;j++){
      

  7.   


    我的代码是在JDK1.5 上面 编译的  没有问题请问你的jdk 版本,运行如下命令java -version 
      

  8.   

    冒泡排序 就不要使用Object[] 对象数组了这样的程序 请直接使用 int[]数组  优点:int[]  效率高,可以持有基本数据类型  不需要JDK自动装箱和拆箱
      

  9.   


    /**
     * @author troy(J2EE)
     * @version 1.0  1995年的3月23日
     */
    public class Test {
        public static void main(String[] args){
            int[] a= new int[9];
            a[0] = 1;
            a[1] = 2;
            a[2] = 8;
            a[3] = 5;
            a[4] = 7;
            a[5] = 9;
            a[6] = 13;
            a[7] = 4;
            a[8] = 0;
    int temp;
            for(int i=0;i<a.length;i++){
                for(int j=0;j<a.length-i-1;j++){
                    if( a[j]>a[j+1] ){
                        temp = a[j];
                        a[j] = a[j+1];
                        a[j+1] = temp;
                    }
                }
            }
            for(int k=0;k<a.length;k++){
                System.out.println(a[k]);
            }
        }
    }
      

  10.   

    if(((Integer)a[j]).intValue()>((Integer)a[j+1]).intValue()){
       看了这么多回帖,不就是转换出错么,
      if(Integet.IntValue(a[j])>Integer.IntValue(a[j+1]))
       {
         
        }
       三楼的同志干嘛还要把它toString()啊? 
       
       还有冒泡排序的外层循环应该是i<a.length-1吧!!!!!!