Nombres d'occurences d'un mot

Nombres d'occurences d'un mot - Java - Programmation

Marsh Posté le 24-08-2006 à 14:45:19    

Bonjour,
 
j'ai écrit un programme permettant de trier les éléments, d'afficher leur nombres d'occurences et de supprimer les doublons.
MOn problème vient de la fonction qui compte le nombre d'occurrences d'un mot car j'affiche plusieurs fois le même mot .
Est-ce que quelqu'un pourrait me dire comment faire pour ne les afficher qu'une fois?
 
Merci
 
Mon programme :

Code :
  1. import java.util.*;
  2. public class Unique{
  3.     public static void suppDoublons(String [] array){
  4. int i = 0;
  5. int size = array.length;
  6. while(i < size-1){
  7.     if(array[i].equals(array[i+1])){
  8.  for(int j=i; j<size-1; j++)
  9.      array[j] = array[j+1];
  10.  --size;
  11.  array[size] = null;
  12.     }
  13.     else ++i;
  14. }
  15.     }
  16.    
  17.    
  18.     public static void lexico(String [] array){
  19. List<String> list = Arrays.asList(array);
  20. Collections.sort(list);
  21.     }
  22.    
  23.     public static int nombreOccurrence(String mot, String [] array){
  24. int nb = 0;
  25. for(String s : array)
  26.     if(s.equals(mot))
  27.  nb++;
  28. return nb;
  29.     }
  30.    
  31.     public static void main(String [] args){
  32.         lexico(args);
  33. for(String s : args)
  34.     System.out.print(s + " " );
  35. System.out.print("\n" );
  36.    
  37.     for(String s : args){
  38.     int nb = nombreOccurrence(s, args);
  39.     System.out.print(s + " : " + nb);
  40.     System.out.print("\n" );
  41. }
  42.    
  43.     suppDoublons(args);
  44.    
  45.     for(int i=0; args[i]!=null; i++)
  46.  System.out.print(args[i] + " " );
  47.     System.out.print("\n" );
  48.     }
  49. }


 
Ce que j'obtiens :

Code :
  1. $ java Unique un un un deux deux deux trois trois trois
  2. deux deux deux trois trois trois un un un
  3. deux : 3
  4. deux : 3
  5. deux : 3
  6. trois : 3
  7. trois : 3
  8. trois : 3
  9. un : 3
  10. un : 3
  11. un : 3
  12. deux trois un


Message édité par Gattuso le 24-08-2006 à 14:45:58
Reply

Marsh Posté le 24-08-2006 à 14:45:19   

Reply

Marsh Posté le 24-08-2006 à 14:46:08    

java.util.Map


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 24-08-2006 à 15:01:32    

Code :
  1. for(String s : args) {
  2.  int nb = nombreOccurrence(s, args);
  3.  System.out.print(s + " : " + nb);
  4.  System.out.print("\n" );
  5. }


 
ta sortie correspond pas mal à ce que tu demandes.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed