【发布时间】:2010-10-16 22:41:39
【问题描述】:
我正在使用一个使用二维字符串数组的程序(一开始可能不是那么聪明,但是嗯),我想编写一个函数来获取这些数组之一(比如说 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;
}
我声明了一个新的字符串数组,然后遍历它,分别复制每个值。当这不起作用时,我什至尝试从每个旧字符串中显式声明一个新字符串并将其放入数组中。
谁能告诉我哪里出错了?
【问题讨论】:
-
似乎它应该对我有用...您能否提供一些示例代码来说明您遇到的问题?
-
+1:对我来说很好用...你能提供整个测试设置的代码吗?
-
有编辑功能吗?抱歉,我意识到问题实际上出在我的打印功能上。不过,感谢您的彻底帮助:我根据建议清理了函数,并学到了很多关于 Java 如何传递参数的知识。
-
其实有一个编辑功能...继续,找到并使用它:-) ...
-
为我工作。提供一个小而完整的例子说明这不起作用,或者这不是一个问题。
标签: java arrays pointers string