텍스트 파일로 2 차원 배열을 채우려 고합니다.텍스트를 2 차원 배열로 변환
내 텍스트 파일은 다음과 같습니다
이#######
# .# @#
# # #
#$##$##
# # #
# #
#######
그 게임의 수준을 basicaly. 내 최종 2 차원 배열은 다음과 같이한다
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] = #;
내 시도가의 행을 읽어 1D 배열로 변환 2 개 루프와 2 차원 배열을 채우는 것입니다. 그런 다음 그들을 인쇄해야합니다. 스레드에서
예외 : 내가 7
char [][]a = new char [6][7];
에 열을 설정하고 행 6
for (int rows=0; rows<6; rows++){
에 나는 또한 오류가 될 때
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();}}
기이은 단지 모든 것을 출력한다 "main"java.lang.ArrayIndexOutofBoundException : 0 at pp.main (pp.java:18)
그게 여기
array2d [rows][columns] = array1d [columns];
그리고 나 또한 (코드 도시하지 않음) array2d을 인쇄 할 수 없습니다입니다. 예를 들어 [6] [0]을 얻으려고하면 아무 것도하지 않습니다.
사실 문자로 검색하고 몇 시간 동안 시험해 본 결과, 나를 도와 줄 수 있기를 바랍니다.
'rows'는'0'에서'6'까지 순환하며,'array2d'의 첫 번째 배열은 크기가'6' (마지막 색인은'5')입니다. 이것이 ArrayIndexOutOfBoundsException을 얻는 이유입니다. – Dando18
7 행과 열이 있기 때문에 2 차원 배열을'[7] [7]'로 선언해야합니다.그것은 배열의 마지막 숫자가 아니라 항목의 수에 따라 다르므로'[6] [7]'은 너무 작은 6 * 7 배열 일뿐입니다. – NendoTaka