2015-09-10 2 views
1

Я не знаю, что это не так с моим кодом, он не отображает список для пользователя как 10 строк из 10 значений?нужна помощь в java/файле IO

Напишите вторую программу, которая читает эти 100 номеров из «values.txt» и помещает их в ArrayList.

вот код:

class Program2 { 
    public static void main(String args[]) throws Exception { 

     ArrayList<Integer> list = new ArrayList<Integer>(); 

     int i = 0; 
     try { 
      Scanner read = new Scanner(new File("values.txt")); 
      do { 
       String line = read.nextLine(); 
       list.add(Integer.parseInt(line)); 
      } while (read.hasNext()); 
     } catch (FileNotFoundException fnf) { 
      System.out.println("file was not found"); 
     } 

     bubbleSort(list); 
     for (int s : list) { 
      i++; 
      if (i == 10) { 
       System.out.println(); 
       i = 0; 
      } 
      System.out.print(s + " "); 
     } 
    } 

//sorting the values 

    public static void bubbleSort(ArrayList<Integer> list) { 
     boolean swapped = false; 
     do { 
      swapped = false; 
      for (int i = 0; i < list.size() - 1; i++) { 
       if (list.get(i) > list.get(i + 1)) { 
        int swap = list.get(i); 
        list.set(i, list.get(i + 1)); 
        list.set(i + 1, swap); 
        swapped = true; 
       } 
      } 
     } while (swapped); 

    } 
} 
+0

Что она делает Теперь? Отображаются ли какие-либо сообщения об ошибках? Он что-то показывает? – Erick

+0

он не отображает значения – rose

+0

@ Erick @ zenilt Я не знаю, что не так, просто сортируйте значения в файле, но он не отображается в консоли – rose

ответ

0

У вас ошибка в итерации, вы печатаете 9 значений в каждой строке, а не 10. Оно должно быть:

for (int s : list) { 
    if (i == 10) { 
     System.out.println(); 
     i = 0; 
    } 
    i++; 
    System.out.print(s + " "); 
}