2013-05-01 3 views
-2

У меня возникли некоторые проблемы с пониманием того, что Java хочет синтаксически работать над программой. Программа должна читать входной файл, а затем распечатывать его содержимое. Как только я это сделаю, я буду знать, как манипулировать его содержимым.Начало Java: как передать входной файл в 2D-массив

Например, мой входной файл может выглядеть следующим образом:

1 2 3 
4 5 6 
7 8 9 

Это мой код:

import java.util.Scanner; 
import java.io.*; 

public class stats1 { 

public static void main(String[] args) throws IOException { 

Scanner s = new Scanner(new File("numbers.tex")); 
int[][] numbers = new int[s.nextInt()][s.nextInt()]; 
for (int row = 0; row < numbers.length; row++) 
    for(int col =0; col < numbers[row].length; col++) 
     numbers[row][col]=s.nextInt(); 
     System.out.print(numbers[row][col] + " "); 
    } 

} 
+0

Итак? Это не работает? Это дает ошибку? В чем вопрос? – sashkello

+1

Глядя на код, я уже могу заметить, что скобка нужна во втором цикле. for (col ..) {// номера и выписка системы} –

+0

+1 to @JeremyUnruh. ** Всегда ** используйте фигурные скобки вокруг ваших блоков, даже если они содержат только одну инструкцию. Более последовательное, удобное для чтения и отсутствие ошибок. –

ответ

1

Вам нужен { и } после второго цикла:

for (int row = 0; row < numbers.length; row++) 
    for(int col =0; col < numbers[row].length; col++) { 
     numbers[row][col]=s.nextInt(); 
     System.out.print(numbers[row][col] + " "); 
    } 

Я рекомендую вам также использовать скобы вокруг внешней петли, для предотвращения таких ошибок в будущем.

Обратите внимание, что в вашем случае, numbers.length будет 1 и numbers[row].length будет 2. (Так как вы объявили и определили свой массив, используя nextInt, который занял 1 и 2 из файла.

Затем, ваш цикл будет выполняться только на 3 и 4. Таким образом, ваш выход будет 3,4.

Я предлагаю вам поместить в первую строку размерность матрицы. И чтобы увидеть «матричную форму», вам нужно напечатать пустой после завершения внутренней петли.

В качестве альтернативы вы можете сначала подсчитать количество строк и столбцов, таким образом вам не нужно будет добавлять в первую строку измерение.

Смежные вопросы