gpt4 book ai didi

java - 对如何从 txt 文件写入字符串然后将其转换为二维数组感到困惑

转载 作者:行者123 更新时间:2023-12-01 23:45:09 24 4
gpt4 key购买 nike

所以我尝试写入一个如下所示的 txt 文件

8 7
1 1 1 1 1 1 1
1 0 0 0 e 1 1
1 0 1 0 0 1 1
1 0 1 0 1 0 1
1 0 0 0 0 0 1
1 0 0 1 0 0 1
1 0 1 0 1 s 1
1 1 1 1 1 1 1

我无法将前两个数字作为数组的大小,然后将其余数字转换为字符串,然后将该字符串转换为包含所有这些值的二维数组。谢谢!

while (input.hasNext()) {
numRows = input.nextInt();
numCols = input.nextInt();

input.nextLine();

String s = "";
for (int i = 0; i < numRows; i++)
s = s + input.nextLine();

int place = 0;
for (int i = 0; i < numRows; i++) {
for (int j = 0; j < numCols; j++) {
maze[numRows][numCols] = String.valueOf(s.charAt(place));
place++;
}
}
}

最佳答案

您没有建立索引。使用您定义的索引 ij。这是使用索引正确迭代的示例:

matrix.txt

8 7
1 1 1 1 1 1 1
1 0 0 0 e 1 1
1 0 1 0 0 1 1
1 0 1 0 1 0 1
1 0 0 0 0 0 1
1 0 0 1 0 0 1
1 0 1 0 1 s 1
1 1 1 1 1 1 1

Main.java

public class Main {
public static void main(String[] args) throws IOException {
char[][] matrix = null; // change to String[][] matrix = null; if you want Strings
try (Scanner s = new Scanner(Path.of("matrix.txt"))) {
int rows = s.nextInt();
int cols = s.nextInt();
s.nextLine();
matrix = new char[rows][cols]; // change to matrix = new String[rows][cols];
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
matrix[i][j] = s.next().charAt(0); // change to matrix[i][j] = s.next();
}
}
}
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + " ");
}
System.out.println();
}
}
}

输出:

1 1 1 1 1 1 1
1 0 0 0 e 1 1
1 0 1 0 0 1 1
1 0 1 0 1 0 1
1 0 0 0 0 0 1
1 0 0 1 0 0 1
1 0 1 0 1 s 1
1 1 1 1 1 1 1

我还针对您需要 String[] 而不是 char[] 的情况添加了建议。

关于java - 对如何从 txt 文件写入字符串然后将其转换为二维数组感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58243446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com