当前位置: 首页 > 面试题库 >

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

姜经武
2023-03-14
问题内容

我正在使用使用Strings的二维数组的程序(一开始可能不是很聪明,但是eh),并且我想编写一个采用这些数组之一的函数(比方说array1),一个独立的副本,并返回它(假设为array2)。但是,当我然后更改array2中的值时,它似乎反映在array1中。

我的函数当前看起来像这样:

public static String[][] copy(String[][] matrix, int n) {
    String[][] out = new String[n+1][n+1];
    for (int i = 0; i < n+1; i++) 
        for (int j = 0; j < n+1; j++) {
            if(matrix[i][j] != null) {
                String cp = new String(matrix[i][j]);
                out[i][j] = cp;
            }

        }

    return out;
}

我声明一个新的字符串数组,然后对其进行迭代,分别复制每个值。当这不起作用时,我什至尝试从每个旧字符串中显式声明一个新字符串,然后将其放入数组中。

谁能告诉我我要去哪里错了?


问题答案:

您的方法看起来应该可以工作,尽管传入n作为参数会使它变脆,但使用输入数组的length字段会更好,甚至可以以这种方式处理锯齿状的数组。

无需复制内容,因为不能更改字符串-这导致一个主要问题:您要进行什么样的更改,使其似乎反映在副本中?向我们展示执行此操作的代码。



 类似资料:
  • 问题内容: 如何从字符串读取numpy数组?采取类似的字符串: 并将其转换为数组: 在哪里成为对象: 更新 : 我正在寻找一个非常简单的界面。一种将2D数组(浮点数)转换为字符串,然后将其读回以重建数组的方法: 应该回来 应该返回对象 理想的情况是,如果有一个用来控制将浮点精度转换为字符串的精度参数,那么您就不会得到像这样的条目。 在numpy的文档中我找不到任何可以同时完成这两种操作的文档。可让

  • 在C++中将二维字符数组复制到一维数组字符串中最简单的方法是什么? 大概是这样的: 问候蒂尔曼

  • 问题内容: 我知道如何对一维字符串数组执行此方法,但是如何打印二维数组?使用1D时,我是这样进行的: 如何打印2D阵列? 问题答案: 您只需对元素进行两次迭代: 重要提示: 也很有用,因为您可以链接操作,例如:因为它返回对self的引用!如果可以的话,使用晕厥糖。 重要事项2: 由于在这种情况下,您计划向其添加许多内容,因此最好估算一下避免在添加过程中多次分配和重新定位数组的能力,因此您可以执行以

  • 我正在学习kotlin。我需要创建一个可以保存单词、特殊字符和数字的2D数组。我在其中找到了这段代码这个问题是它只能保存Int。当我尝试将关键字“IntArray”替换为“string”时。它返回了错误ERROR有人能帮我创建一个可以在静态编程语言中保存字符串的10x8数组吗

  • 问题内容: 我需要为正在进行的项目制作一个相当大的二维数组的副本。我有两个2D阵列: 我也有两种方法来进行复制。我需要复制数组,因为当前会定期更新。 和 但是,这不起作用。如果我叫old,对current进行更新,然后再调用keepold,则current不等于原来的值。为什么会这样呢? 谢谢 问题答案: 或使两个数组引用相同的东西,因此,如果你随后修改,也会被修改。要将一个数组的内容复制到另一个

  • 在java.util.scanner.throwfor(未知源)在java.util.scanner.next(未知源)在java.util.scanner.nextint(未知源)在java.util.scanner.nextint(未知源)在test.main(test.java:6) 如何修复以及如何在数组中输入字符串