2次元配列にテキストファイルを入力しようとしています。テキストを2次元配列に変換する
私のテキストファイルは次のようになります。
#######
# .# @#
# # #
#$##$##
# # #
# #
#######
そのゲームのレベルをbasicaly。私の最後の2Dアレイは、次のようになりなければならない。
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次元配列を埋めるためです。それから私はそれらを印刷する必要があります。
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();}}
奇妙な話、それは唯一私が6
for (int rows=0; rows<6; rows++){
から7
char [][]a = new char [6][7];
と行に列を設定したときに、私もエラーになるすべてのものをプリントアウト:スレッドで
例外"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