2013-11-27 5 views
-1

Файл, который начинают читать этоКак ввести во второй строке

11 -5 -4 -3 -2 -1 6 7 8 9 10 11 
8 -33 -22 -11 44 55 66 77 88 

11 и 8, первое целое число, начинают размер указанного массива. Приведенный вывод, предположим, что это массив, предположим, что это две разные базы массивов на их первом целочисленном размере.

я могу прочитать и осуществить первую линию целого, используя следующий код

public class sortList{ 
    public static void main(String args[]){ 
     try{ 
     Scanner s = new Scanner(new File("data")); 
     int[] array = new int[s.nextInt()]; 
     for (int i = 0; i < array.length; i++){ 
     if (i == 0){ 
      continue; 
     } 
     array[i] = s.nextInt(); 
     System.out.println(array[i]); 
     } 

     } 
     catch(IOException e){ 
      e.printStackTrace(); 
     } 
    } 
} 

Теперь, как я прочитал вторую линию целого, потому что я искал здесь повсюду. Нет помогло

+0

продолжени является излишним, если вы просто установите 'INT I = 1 'в начале. – Obicere

+0

Гипотеза: после того, как вы прочитали весь первый массив, вы знаете, что безопасно читать второй массив. – Makoto

ответ

1

Вы буквально на полпути. У вас есть один цикл, чтобы перейти по первой строке. После завершения первого цикла вы полностью исчерпали всю строку текста.

Что вы можете сделать, так это продвинуть сканер на следующую строку с помощью метода Scanner#nextLine().

Затем вы создаете другой массив для хранения второй строки текста, аналогичной тому, как вы создали первый. Вам не нужно дублировать ваш Scanner.

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

public int[] readLine(Scanner fileReader) { 
    int[] array = new int[fileReader.nextInt()]; 
    for (int i = 0; i < array.length; i++){ 
     array[i] = fileReader.nextInt(); 
    } 

    return array; 

} 
+0

Да, спасибо. не думал, что nextInt() означает буквально следующее целое число. При сканировании файла и использовании указанного файла. –

-1

Во-первых, удалите эти три строки:

if (i == 0) { 
    continue; 
} 

Затем положить while (s.hasNextInt()) { … } (или так, я не смотрел вверх documentstion) вокруг int[] array и } петли for.

Чтобы узнать, все ли это работает, вы должны добавить System.out.println("one record: " + Arrays.toString(array)); в качестве последней строки цикла while.

0
public class sortList{ 



     public static void main(String args[]){ 


     try{ 
      Scanner s = new Scanner(new File("data.txt")); 
      int[] array = new int[s.nextInt()]; 

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

      s.nextLine(); 
      int[] array1 = new int[s.nextInt()]; 
      for (int i = 0; i < array1.length; i++){ 
      array1[i] = s.nextInt(); 
      System.out.println(array1[i]); 
      } 

      } 

     catch(IOException e){ 
      e.printStackTrace(); 
     } 

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