Bonjour,

Je cherche à parcourir un fichier "fruits.txt" où il y a plusieurs occurrences du même fruit (ou pas) sur certaines lignes. L'idée c'est qu'en premier temps de parcours la liste, prendre de la liste seulement une fois le nom de chaque fruit, son répétition.


Affiche des fruits (un seul mot sans redondance) avec le nombre occurrences.

A ce stade, je ne gère pas l'enregistrement du résultat dans un fichier resultat.txt

Merci d'avance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 
/*
fruits.txt
...
pomme 
banane
pomme 
orange
orange
kiwi
pomme 
banane
banane
...
*/
 
  package src.com.hemebiotech.analytics;
 
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
 
public class ReadFruits {
 
 
private String filepath;
public ReadFruits(String filepath) {
	super();
	this.filepath = filepath;
}
 
	// serialisation
	public List<String> GetFruits() {
		ArrayList<String> result = new ArrayList<String>();
		List<String> list = new ArrayList<String>();
 
		if (filepath != null) {
			try {
				BufferedReader reader = new BufferedReader (new FileReader(filepath));
				String line = reader.readLine();
 
				  //transvaser resultat dans liste 
				 //pour comparer et extraire seulement une fois le contenu d'une ligne
 
				while (line != null) {
					result.add(line);					
					line = reader.readLine();
					System.out.println(" - " + line);
 
				}
				reader.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
 
		/*la liste des fruits dans un tableau list après 
		serialisation dans le fichier fruits.txt */
 
		list.addAll(result);
		int occurenceNomber = 0;
		for(int j=0; j < result.size(); j++) {
			//comparer les deux index si l'accurrence existe on l'injecte dans la liste
			// une seule occurence
			if(list.get(j).equals(result.get(j))) {
				list.add(result.get(j));
 
				System.out.println(occurenceNomber + "nombre d'accurence");
				occurenceNomber++;
			}
		}
 
		return result;
	}
 
 
 
 
}