public static String[][] searchCanOnSale(String[][] str){
String[][] str2=new String[str.length][str[1].length+1];
for(int k=0;k<str.length;k++){
for(int k2=0;k2<str[0].length;k2++){
str2[k][k2]=str[k][k2];
}

}
System.out.println(str2[1].length);
String modelimg=ResourceBundle.getBundle("img").getString("modelimg");
for(int i=1;i<str2.length;i++){
String desc=str2[i][17];
if(desc.contains(modelimg)){
str2[i][28]="模特图已上";
}
}
return str2;
}
for(int k=0;k<str.length;k++){
for(int k2=0;k2<str[0].length;k2++){
str2[k][k2]=str[k][k2];
}

}
这段代码有木有方法能给简单到一个语句来解决呢?

解决方案 »

  1.   

    System.arraycopy是可以变成一句话但是这样的话你得到的二维数组的二维的length就不能是str1[1].length+1了也会变成str1.length
      

  2.   

    那样的话直接str2=str就可以的
      

  3.   

    public static String[][] searchCanOnSale(String[][] str){
    String[][] str2=new String[str.length][str[1].length+1];
    for(int k=0;k<str.length;k++){
    /*for(int k2=0;k2<str[0].length;k2++){
    str2[k][k2]=str[k][k2];
    }*/
    System.out.println(str[0][0]+","+str[0][27]);
    System.arraycopy(str[k], 0, str2[k], 0, str[k].length);
    System.out.println(str2[0][0]+","+str2[0][28]);
    System.out.println(str2[k].length);
    }

    System.out.println(str2[1].length);
    String modelimg=ResourceBundle.getBundle("img").getString("modelimg");
    for(int i=1;i<str2.length;i++){
    String desc=str2[i][17];
    if(desc.contains(modelimg)){
    str2[i][28]="模特图已上";
    }
    System.out.println(str2[i][0]+","+str2[i][28]);
    }
    return str2;
    }
    改了一下,感觉还是稍微复杂了一点。
      

  4.   

    可以clone:
    str2[k] = str[k].clone();//深拷贝
      

  5.   

    但是这样的话两个数组是一样的,我希望的是str是str2的一部分而已。