Bonsoir, je rencontre un petit probleme dans mon code java qui utlisent les Map.
En effet, ma classe a pour rôle lire un fichier dans la forme est la suivante:
puis elle récupére dans chaque ligne le dernier mot en utlisant le séparateur "espace" afin de calculer le nombre de fois ou il apparait dans le fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 37492 5511 1239 38040 9737 37492 5511 3356 38040 9737 37492 5511 701 4725 37492 5511 3320 7497 38345 37492 5511 3320 7497 38345 // en rouge les dernier mots 37492 5511 3320 7497 38345 37492 5511 2914 4641 38345 37492 5511 6453 38345
le problème est que ça me retourne un résultat tout à fait éronné. par exemple en regardant le contenu de ma Map, je vois des nombre comme "3" ou "0" alors qu'aucune ligne de mon fichier ne finit avec un tel mot.
voilà le code:
merci d'avance pour votre aide
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 class RouteNumber { int route_count=0; Route_Count rc; File file; public RouteNumber(File f, File file) throws FileNotFoundException, IOException { this.file=rc.targetFile; Map< String,Integer> mp=new HashMap <String, Integer>(); InputStream ips=new FileInputStream(f); InputStreamReader ipsr=new InputStreamReader(ips); BufferedReader br=new BufferedReader(ipsr); String ligne=""; String origin=""; while ((ligne=br.readLine())!=null) { String [] path=ligne.split(" "); origin=path[(path.length)-1]; if (mp.containsKey(origin)) { route_count=mp.get(origin); route_count=route_count+1; mp.put(origin, route_count); } else { mp.put(origin, 1); } } Set s=mp.entrySet(); Iterator it=s.iterator(); FileWriter fw = new FileWriter(rc.targetFile); BufferedWriter bw = new BufferedWriter (fw); PrintWriter pr=new PrintWriter(bw); while(it.hasNext()) { Map.Entry m =(Map.Entry)it.next(); String key=(String)m.getKey(); int value = (int)m.getValue(); pr.println(key+":"+value); pr.flush(); System.out.println("as :"+key+", nb :"+value+""); } } }
Partager