Получить сохраненные данные из текстового файла, но показать только часть данных Java JGrasp

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

Вот мой код.

public static void Highscore(List<Highscore> data) {

   String HighscoreList = "";

      try {
          //Textfilens name
          String filname = "Highscore.txt";
          Scanner inFil = new Scanner(new File(filname));

             while(inFil.hasNext()) {

             String name = inFil.next();
             String percent = inFil.next();

             HighscoreLista += name + "\n" + percent + "%" + "\n\n";

          }  inFil.close(); 
      }   catch (FileNotFoundException e1) {
             JOptionPane.showMessageDialog(null,"File was not found!");
         }
            JOptionPane.showMessageDialog(null, HighscoreList);

}//Highscore ends

Как мне показать только часть игроков в финальном сообщении (Highscorelist).

Спасибо за помощь.


person Andreas Luacs    schedule 12.02.2016    source источник


Ответы (1)


Создайте переменную счетчика в функции, чтобы отслеживать количество элементов в цикле while и проверять переменную счетчика вместе с условием while

 public static void Highscore(List<Highscore> data) {

 String HighscoreList = "";
  int counter =0;

  try {
      //Textfilens name
      String filname = "Highscore.txt";
      Scanner inFil = new Scanner(new File(filname));

         while(inFil.hasNext() && counter<=10) {
          counter++;

         String name = inFil.next();
         String percent = inFil.next();

         HighscoreLista += name + "\n" + percent + "%" + "\n\n";

      }  inFil.close(); 
  }   catch (FileNotFoundException e1) {
         JOptionPane.showMessageDialog(null,"File was not found!");
     }
        JOptionPane.showMessageDialog(null, HighscoreList);

}//Highscore ends
person Sijo Jose    schedule 12.02.2016
comment
Спасибо за ответ, однако мне просто интересно, что такое inFil.hasNext() в цикле while? - person Andreas Luacs; 13.02.2016