2017-02-13 2 views
-1

У меня возникла проблема с попыткой заставить программу работать. Первая строка в массиве пуста, и она продолжает выталкивать последнюю строку в массиве.Java Mult Array From File

Scanner console = new Scanner(System.in); 
System.out.println("please enter the file name"); 
String name = console.next(); 
Scanner input = new Scanner(new File(name));   

int length = input.nextInt(); 
int lengt = input.nextInt(); 

char[][] array = new char[length][lengt]; 

for(int i = 0; i < length; i++) { 
    array[i] = input.nextLine().toCharArray(); 
} 

for(int k = 0; k < array.length; k++){ 
    for(int s = 0; s < array[k].length; s++) { 
     System.out.print(array[k][s]); 
    } 
    System.out.println(); 
} 

input.close(); 
System.out.println(); 
+2

Можете ли вы включить первые несколько строк своего файла – SeanKelleyx

ответ

0

Попробуйте добавить строку input.nextLine(); в код следующим образом:

int length = input.nextInt(); 
int lengt = input.nextInt(); 
input.nextLine(); 
char[][] array = new char[length][lengt]; 

Я считаю, что происходит это вы читаете int «S, чтобы получить length и lengt, но вы покидаете остальной части этой линии. Когда вы вызываете array[i] = input.nextLine().toCharArray(); при первом нажатии остальных или линии с помощью length и lengtint. Так как это считается первой строкой в ​​вашем цикле for, вы не итерируете по последней строке.

+0

спасибо, что это сработало – ghost2092000

+0

отлично, вот как вы можете отметить это как принятый ответ: http://meta.stackexchange.com/questions/5234/how-does- прием-ан-ответ-работа – SeanKelleyx