如何复制二维字符串数组?

问题描述 投票:2回答:3

我在将字符串数组值复制到新的字符串数组时遇到困难。

例如:

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........;

我尝试了此方法,但是每当我要插入新值时,它都会使我出现空指针问题。

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("");
}

如何复制此二维字符串数组?

java arrays string
3个回答
9
投票

Java具有一个称为arraycopy的内置函数,可以为您完成此操作而无需使用double for循环。效率更高。


1
投票

首先,较新的数组具有比源数组更多的元素,因此请决定要执行的操作。同样,如果旧数组被称为array,请使用另一个名称调用新数组,例如newarray

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

0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.