当我说网格时,我的意思是多维数组。我想要这个,因为我正在制作一个 2D 游戏,并且我希望能够从数据文本文件中加载关卡。比方说,例如,我有这个 2D 数组level[3][3
]。一个简单的 3x3 地图。我还有一个文本文件,内容如下:
1 2 3
4 5 6
7 8 9
在 c++ 中,我可以简单地执行以下操作:
for (x=0; i<map_width; x++)
{
for (y=0; y<map_height; y++)
{
fscanf(nameoffile, "%d", map[x][y]);
}
}
这会将文本文件的所有内容相应地放入数组中。但是我不知道如何在java中做到这一点。是否有任何等价物可以将数据相应地放入数组中?我已经知道扫描仪类,但我不知道如何使用它。我已经搜索了谷歌,无济于事。它没有太多解释。请帮忙!具体来说,我想知道如何扫描文件并将它读取的任何 int 放入数组中的适当位置。
我当前的代码是这样的,但是,它抛出了 NoSuchElementException:
public void loadMap() {
Scanner sc = null;
try {
sc = new Scanner(inputmap);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
for (int x = 0; x < width; x++) {
for (int y = 0; y < height; y++) {
map[x][y] = sc.nextInt();
}
}
其中 inputmap 是文件,map[][]
是地图上每个图块的数据网格,并且宽度和高度在构造函数中预先指定。