2010-10-13 22 views
2

Comment dois-je faire une sorte de bulle en java, Le fichier texte ressemble à ceci:Comment trier la bulle dans un fichier texte en Java

aaa 

2 

bbb 

3 

ccc 

1 

Ce que je dois faire est de faire une boucle à travers elle et l'affichage le score le plus élevé au plus bas. Lorsque j'exécute le code ci-dessous, Les numéros sont déjà triés. et il affichera 3, 2, puis 1. Mais le nom n'est pas synchronisé avec le score correspondant, il n'affichera que les noms en fonction de ce qui est en premier. Ainsi, la sortie se penchera essentiellement comme ça, si je lance le code ci-dessous:

aaa 3 

bbb 2 

ccc 1 

Fonction:

public void hi_score(){ 
    int i=0; 
     try { 
       FileReader fr; 
      fr = new FileReader (new File("F:\\pscores.txt")); 
      BufferedReader br = new BufferedReader (fr); 
      int ar=0; 
      for(ar=0;ar<10;ar++){ 
      player_name[ar]=br.readLine(); 
      player_score[ar]=Integer.parseInt(br.readLine()); 
      } 

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

       bubble_srt(player_score, player_score.length); 
     System.out.print("Highscores:\n"); 
     System.out.println("Scores"); 

     System.out.println("Name\tScore"); 
     for(i = 0; i <NUMBER_OF_HI_SCORE; i++){ 
      System.out.print(player_name[i] + "\t" +player_score[i] + "\n"); 

     } 
    } 

Comment dois-je faire cela, sans utiliser arraylist. Tableau juste ordinaire.

Répondre

2

Doit créer un seul tableau qui combine le joueur et le score respectif sous la forme d'une chaîne []; créer un tableau de scores qui obtient bulle triés

alors que vous avez un int [] tableau player_score trié, vous pouvez essayer de le faire correspondre via substring des éléments String [] playername + score de

edit: donc après le tri à bulles, quand vous allez l'imprimer, prenez peut-être le tableau de partitions nouvellement trié, essayez de faire correspondre avec un élément approprié du tableau de String [] playername + score, puis imprimez l'élément correspond aux 0ème, 1er, 2ème valeurs du tableau de score trié.

2

C'est parce que vous triez que le tableau player_score:

bubble_srt(player_score, player_score.length); 

Vous devez également envoyer le tableau player_name à la fonction, sorte que vous triez avant (basé sur le score) et chaque fois que vous échangez deux partitions, vous devrez aussi échanger les noms.