我試圖用文本文件填充2d數組。將文本轉換爲2d數組
我的文本文件看起來像這樣:
#######
# .# @#
# # #
#$##$##
# # #
# #
#######
其basicaly對遊戲的水平。我最後的二維陣列應是這樣的:
char [][] a = new char [6][6];
a[0][0] = #; a[0][1] = #; ... a[0][6] = #;
a[1][0] = #; a[1][1] = ; a[1][2] = . ; ... a[1][6] = #;
.
.
.
a[6][0] = #; . . . a[6][6] = #;
我嘗試讀取該行,將它們轉換成一維數組,並用2個循環填補了二維數組。然後我需要將它們打印出來。
public class pp {
public static void main (String[] args) {
char [][]array2d = new char [6][7];
In.open("Level2.txt");
while (In.done()){
for (int rows=0; rows<7; rows++){
String string = In.readLine();
char [] array1d = string.toCharArray();
for(int columns=0; columns<7;columns++){
array2d [rows][columns] = array1d [columns];
Out.print(array2d[rows][columns]);
}
Out.println();
}
}
In.close();}}
奇怪的是隻打印的一切時,我設置列7
char [][]a = new char [6][7];
,行至6
for (int rows=0; rows<6; rows++){
我也成爲了錯誤:
異常螺紋「main」java.lang.ArrayIndexOutofBoundException:0 at pp.main(pp.java:18)
多數民衆贊成在這裏
array2d [rows][columns] = array1d [columns];
而且我也無法打印array2d出(代碼未顯示)。例如,當我嘗試獲取[6] [0]時,它什麼也不做。
我從字面上尋找和嘗試幾個小時,我希望你能幫助我。
'''循環從'0'到'6',而'array2d'中的第一個數組的大小是'6'(意思是最後一個索引是'5')。這就是爲什麼你得到'ArrayIndexOutOfBoundsException' – Dando18
你的二維數組需要用'[7] [7]'聲明,因爲有七行和一列。它不是由數組中的最後一個數字,而是由項目的數量決定的,所以'[6] [7]'只會是一個太小的6 * 7數組。 – NendoTaka