简体   繁体   English

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

[英]How to copy 2d String array?

I'm having difficulty copying string array values into a new string array.我很难将字符串数组值复制到新的字符串数组中。

For example:例如:

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

I tried this method but it keeps me giving null pointer issues whenever I want to insert a new value.我尝试过这种方法,但是每当我想插入一个新值时,它都会让我出现空指针问题。

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

How can I copy this 2d string array?如何复制这个二维字符串数组?

Java has a built in function called arraycopy that can do this for you without a double for loop. Java 有一个名为arraycopy的内置函数,它可以在没有双 for 循环的情况下为您执行此操作。 Much more efficient.效率更高。

First of all the newer array has more elements that source array so decide what you want to do about it.首先,较新的数组具有比源数组更多的元素,因此请决定要对它做什么。 Also if old array is called array call the new array by a different name say newarray .此外,如果旧数组被称为数组则以不同的名称调用新数组,例如newarray

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM