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 :
- import java.util.*;
- public class Unique{
- public static void suppDoublons(String [] array){
- int i = 0;
- int size = array.length;
- while(i < size-1){
- if(array[i].equals(array[i+1])){
- for(int j=i; j<size-1; j++)
- array[j] = array[j+1];
- --size;
- array[size] = null;
- }
- else ++i;
- }
- }
-
-
- public static void lexico(String [] array){
- List<String> list = Arrays.asList(array);
- Collections.sort(list);
- }
-
- public static int nombreOccurrence(String mot, String [] array){
- int nb = 0;
- for(String s : array)
- if(s.equals(mot))
- nb++;
- return nb;
- }
-
- public static void main(String [] args){
- lexico(args);
- for(String s : args)
- System.out.print(s + " " );
- System.out.print("\n" );
-
- for(String s : args){
- int nb = nombreOccurrence(s, args);
- System.out.print(s + " : " + nb);
- System.out.print("\n" );
- }
-
- suppDoublons(args);
-
- for(int i=0; args[i]!=null; i++)
- System.out.print(args[i] + " " );
- System.out.print("\n" );
- }
- }
|
Ce que j'obtiens :
Code :
- $ java Unique un un un deux deux deux trois trois trois
- deux deux deux trois trois trois un un un
- deux : 3
- deux : 3
- deux : 3
- trois : 3
- trois : 3
- trois : 3
- un : 3
- un : 3
- un : 3
- deux trois un
|
Message édité par Gattuso le 24-08-2006 à 14:45:58