Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 更改数组的值_Java_Arrays - Fatal编程技术网

Java 更改数组的值

Java 更改数组的值,java,arrays,Java,Arrays,我有以下代码: List<String[]> list = csvReader.readAll(); // Convert to 2D array String[][] dataArr = new String[list.size()][]; 但我得到了这个错误: 不兼容类型:无法将字符串转换为字符串[] 我的问题是,我如何解决这个问题 编辑: 哇,谢谢你的投入 我必须更具体一点,这是我的输入文件: [0,0,0,1,1] [1,1,1,1,1] [0,0,0,0,0] [1,0,

我有以下代码:

List<String[]> list = csvReader.readAll();
// Convert to 2D array
String[][] dataArr = new String[list.size()][];
但我得到了这个错误:

不兼容类型:无法将字符串转换为字符串[]

我的问题是,我如何解决这个问题

编辑:

哇,谢谢你的投入

我必须更具体一点,这是我的输入文件:

[0,0,0,1,1]

[1,1,1,1,1]

[0,0,0,0,0]

[1,0,1,0,1]

[0,1,0,1,0]

这一行:

System.out.println(Arrays.deepToString(dataArr));
导致以下输出:

[[0,0,0,1,1]]、[[1,1,1,1]]、[[0,0,0,0,0]]、[[1,0,1,0,1]]、[[0,1,0,1,0]]

我想将双“[[”和“]]”替换为“[”和“]”

替换所有“
[[
”,您只需使用

String output = Arrays.deepToString(dataArr);
output = output.replaceAll("\\[\\[","\\[");
output = output.replaceAll("\\]\\]","\\]");
output = output.substring(2, output.length()-2);
String[] matrix = output.split("\\],\\[");

这样就可以了

dataArr
的类型是String[]

无法使用为其分配字符串

dataArr[0] = help;

dataArr是字符串的2D数组。您正在尝试将帮助字符串分配给dataArr[0],dataArr[0]是字符串数组。您必须指定第二个索引,例如

dataArr[0][0] = help;
这是您的问题。可以通过以下方式解决:

dataArr[0][0] = help;

调用replace()时应该使用dataArr[][],因为它是一个二维数组。这不起作用,因为您刚刚将
dataArr
转换为二维数组。因此,基本上,您必须执行
dataArr[0][0]
以获取第一个元素。是否正常工作?@Nichoppel,我编辑了我的答案以匹配您编辑的问题。我的答案现在将双“[[”替换为单“[”,并将另一个括号…线程“main”java.util.regex.PatternSyntaxException中的异常:索引1附近的未关闭字符类[[谢谢,好主意,但我有这个错误..哦,只是一个second@NicoHoppel,现在呢?现在我有一个字符串,但我需要一个数组。是否可以像这样拆分字符串:String[]matrix=output.split();
dataArr[0] = help;
dataArr[0][0] = help;