Bonjour tout le monde,
je suis en train d'ecrire une fonction qui permet de parcourir une map et une list et à chaque fois de comparer les deux contenus. de faire quelques calcul et ecrire dans un fichier.
j'ai essayé avec le code ci-desous mais , lors de l'écriture dans le fichier , la concaténation se répéte toujours avec l'ancienne valeur de plus le mot après le # toujours c'est le premier mot
Merci de m'aider à corriger s'il vous plaît.
Exemple :
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 public static void GenerationFicher(String fichier, int x, LinkedHashMap<String, Integer[]> m, PrintWriter pw) throws FileNotFoundException { ArrayList<String> motExtré = new ArrayList<>(); Scanner sc = new Scanner(new File(fichier)); String ss=""; while (sc.hasNextLine()) { String line = sc.nextLine(); String mot = sousChaine(line); motExtré = ExtraNgram(mot, x); //comparer le contenu de la liste et du map for (Map.Entry<String, Integer[]> e : m.entrySet()) { for (String me : motExtré) { if (e.getKey().equals(me) == false) { Integer[] tab = e.getValue(); // acceder au deuxième élement de Integer int c = tab[1]; String compteur = Integer.toString(c); String s = compteur + ":" + 0; ss = ss.concat(s); } else { Integer[] tab= e.getValue(); // acceder au deuxième élement de Integer int c=tab[1]; String compteur= Integer.toString(c); String s=compteur+":"+(nbrFqGram(mot, me)*chiffreGram(me)*positionGram(mot, me)); ss= ss.concat(s); } String ligneàEcrire = target(line) + " " + ss+"#"+mot; // concaténation de toute la ligne // remplir le fichier par la suite des ligne pw.println(ligneàEcrire); } } pw.close(); } }
Partager