Моя программа должна прочитать файл, который выглядит следующим образом:Как заполнить 2 одномерный массив из списка строк
8 7
~~~~~~~
~~~~~~~
B~~~~~~
~~~~~~~
~~~~B~~
~~~~B~~
~~~~~~B
~~~~~~~
мне нужно игнорировать первую строку (8 и 7) и читать следующие символы в двумерный массив. Я думал, что код, который я написал, сделает это, но это не так. Мне нужна карта [0] [0], чтобы соответствовать первому «~», а для отображения [3] [0] соответствовать первому «B». Это код, который я использую.
try
{
File file = new File(args[1]);
Scanner sc = new Scanner(file);
String themap = sc.nextLine();
theFirst = themap.indexOf(" ");
theSecond = themap.lastIndexOf(" ");
int rows = Integer.parseInt(themap.substring(0, theFirst));
int columns = Integer.parseInt(themap.substring(theSecond+1));
char[][] map = new char[rows][columns];
while (k < rows)
{
//System.out.println(k);
while (j < columns)
{
while (sc.hasNextLine())
{
themap = sc.nextLine();
System.out.println(themap);
map[k][j] = themap.charAt(j);
System.out.println(map[k][j]);
}
j++;
}
k++;
}
sc.close();
}
catch (Exception e)
{
System.out.println("ERROR: File does not exist");
}
Я бросил в тестовом заявлении там, чтобы увидеть, что происходит с картой [J] [K] и выводит только первый символ каждой строки. Как я уже сказал, мне нужно, чтобы он соответствовал файлу, с которого я его читаю, но я не уверен, что я делаю неправильно. Помощь была бы оценена.
Я не думаю, что вы должны игнорировать первую строку, вы должны прочитать в 8 (количество строк) и 7 (количество столбцов) и использовать их, чтобы определить, сколько вы должны читать из следующих строк , –
Я думаю, что, возможно, это плохо сформулировано. Я не игнорирую его полностью, так как я использую его для получения значений int строк и столбцов, но они не будут считаться в массиве. –