如何复制String数组

时间:2011-11-21 02:30:57

标签: java

嘿伙计我有一些困难,我想将字符串数组值复制到新的字符串数组中 例如:

    String[][] array = new String[3][2];
    array[0][0] = "hello";
    array[0][1] = "1";
    array[1][0] = "guys";
    array[1][1] = "2";
    array[2][0] = "good ";
    array[2][1] = "3";

    array = new String [5][2];
    all the value in the first array to be copied
    array[3][0] = "";
    array........;

也许你们可以帮助我如何将所有值复制到新的字符串数组中,谢谢

我已经尝试过这种方法,但每当我想插入新值时,它就会让我发出nullpointer问题:

String[][] array = new String[3][2];
    array[0][0] = "olo";
    array[0][1] = "ada ";
    array[1][0] = "apa";
    array[1][1] = "dengan";
    array[2][0] = "si ";
    array[2][1] = "carlo";


    String[][] newArray = new String[5][2];
    newArray = Arrays.copyOf(array, 5);
    array = new String[5][2];
    array = Arrays.copyOf(newArray, 5);
    array[3][0] = "lo";
    array[3][1] = "gw";
    array[4][0] = "end";
    array[4][1] = "ennnnnd";

    for (int r = 0; r < array.length; r++) {
        for (int c = 0; c < array[r].length; c++) {
            System.out.print(" " + array[r][c]);
        }
        System.out.println("");
    }

感谢

3 个答案:

答案 0 :(得分:9)

Java有一个名为arraycopy的内置函数,可以在没有双循环的情况下为您执行此操作。效率更高。

答案 1 :(得分:1)

首先,较新的数组有更多元素来源数组,因此决定你想要做什么。此外,如果旧数组被称为数组,则使用其他名称调用新数组,例如 newarray

for ( int i = 0; i < 3; ++i )
{
  for( int j = 0; j < 2; ++i )
  {
      newarray[i][j] = array[i][j];
  }
}

答案 2 :(得分:0)

你可以使用Arrays.copyOfRange(String param,fromIndex,toIndex)