gpt4 book ai didi

java - 如何使用列表来填充网格?

转载 作者:行者123 更新时间:2023-12-02 06:05:02 24 4
gpt4 key购买 nike

我试图让此代码读取文本文件,然后使用文件中的数字填充 15x15 网格。它所做的只是用 0 填充网格。我不确定如何解决它,但我认为问题在于我如何尝试在循环中使用 list.indexOf() 。

我尝试切换到使用 list.get(i) 或使用 j,但这并没有按照我需要的方式工作。

public Grid(String fileName) throws FileNotFoundException {
//reading file using scanner
Scanner sc = new Scanner(new File(fileName));
//first number is the dimension for rows
this.rows = sc.nextInt();
//since it is square matrix second dimension is same as first
this.cols = this.rows;
grid = new boolean[rows][cols];

String longNumber = sc.next();
List<Integer> list = new ArrayList<>();
for(char ch : longNumber.toCharArray()) {
list.add( Integer.valueOf(String.valueOf(ch)));
}

for (int i = 0; i < rows; i++)
for (int j = 0; j < cols; j++) {
//reading from file 1 and 0 if 1 then store true else store false in grid
if (list.indexOf(i) == 1)
grid[i][j] = true;
else
grid[i][j] = false;
}
}

我得到的输出显示 15x15 的 0 block ,而不是从文本文件中读入的 1 和 0。应该读入并显示文本文件(以及 blob 或 1 block 的计数),但这并没有发生。如果您需要其余代码,请告诉我。我需要读入一个文件,其中包含一个int(15)用于制作网格,然后是15行1和0,当程序正常运行时应该以相同的方式显示。

最佳答案

为什么要把它转换成 List<Integer> ?您可以简单地使用 String你从文件中得到的。

对于每一行,您都必须获得 String然后对于每个这样的 String你可以做charAt()检查那里的字符是什么并存储 truefalsegrid相应地。

代码看起来像这样:

this.rows = sc.nextInt();
//since it is square matrix second dimension is same as first
this.cols = this.rows;
grid = new boolean[rows][cols];

for (int i = 0; i < rows; i++) {
String longNumber = sc.next();
for (int j = 0; j < cols; j++) {
//reading from file 1 and 0 if 1 then store true else store false in grid
grid[i][j] = (longNumber.charAt(j) == 1);
}
}

请注意,我已放置 String longNumber = sc.next()在外循环中。

HTH

关于java - 如何使用列表来填充网格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55944654/

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