Bonjour.

Je suis relativement débutante en java et j'ai un problème avec une arrayList. Elle doit être lire un fichier texte et séparer chaque ligne en 15 gènes, ce qui fonctionne. Ensuite, il doit y avoir un gène parmis les 40 premieres lignes et choisi au hasard qui doit être remplacé par des points d'interrogation (?). Mon problème est qu'il remplace le gène choisit aléatoirement dans la ligne choisie aléatoirement, mais aussi dans toute les lignes suivantes. Voici un petit bout de mon code, en espérant que cela soit assez clair :

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
 
Random generator = new Random();
 
int delRow = 0;//choisi dans quelle ligne deleter le gene ( la rangee)
int delCol;//choisi quel gene de 1 a 15 a deleter ( la colonne)
String manquante = "?";
delCol = generator.nextInt( 14);
delRow = 20+generator.nextInt( 39);
 
do{	
  String line1 = content[i];	
  StringTokenizer tok  = new StringTokenizer(line1);
 
  name = tok.nextToken().trim();
  base  = "";
 
  if(tok.hasMoreTokens())  
    base = tok.nextToken();
  i++;
  //DIVISE LA SEQUENCE EN 15 GENES
 
  gene.add(new String (base.substring(0,204)));
  gene.add(new String (base.substring(204,534)));
  gene.add(new String (base.substring(534,867)));	
  gene.add(new String (base.substring(867,1204)));	
  gene.add(new String (base.substring(1204,1544)));	
  gene.add(new String (base.substring(1544,1966)));
  gene.add(new String (base.substring(1966,2392)));
  gene.add(new String (base.substring(2392,2836)));	
  gene.add(new String (base.substring(2836,3394)));	
  gene.add(new String (base.substring(3394,4084)));	
  gene.add(new String (base.substring(4084,4774)));	
  gene.add(new String (base.substring(4774,5548)));	
  gene.add(new String (base.substring(5548,6382)));	
  gene.add(new String (base.substring(6382,7360)));	
  gene.add(new String (base.substring(7360,8362)));	
 
  /**tset 19**/
  //pour chaque ligne, on divide le genes.
 
  String geneDel = null ;
 
  if ( i == delRow){//si cette ligne a un gene a effacer, on regarde sa longeur, fait la sequence manquante ...
    geneDel = gene.get(delCol); //retourne le gene delCol
    int geneSize = geneDel.length(); //retourne la longueur du delCol
    for( int b = 0; b <= geneSize -1; b++) //tant qu'on a pas atteint la longueur
      manquante = (manquante +'?'); //on ajoute un ? 
    gene.set(delCol, manquante);
  }
  //modifie le gene (delRow) pour tout le reste du fichier  			
  out.write(geneDel);

Merci beaucoup d'avance!