IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Collection et Stream Java Discussion :

modification d'une ArrayList


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Par défaut modification d'une ArrayList
    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!

  2. #2
    Membre chevronné Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Par défaut
    Ton do me gêne... D'une part, sa balise n'est pas fermée, et d'autre part do jusqu'à quand ?

  3. #3
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2007
    Messages : 2
    Par défaut désolée
    oh, je crois qu'il y a eu une perte d'une partie de mon code...désolée, je n'étais pas familère avec la balise code. Le voilà:
    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
     
    	do{	
     
                    		String line1 = content[i];	
                    		StringTokenizer tok  = new StringTokenizer(line1);
     
                    		name = tok.nextToken().trim();
                   			base  = "";
                   			if(content[i].trim()!="\n"){
            					base = base + content[i];
            					//i++;
            				}
     
                   			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)));	
     
     
                			String geneDel = null ;
     
     
     
                		 if ( tester == true && delRow == i){//si cette ligne a un gene a effacer, on regarde sa longeur, fait la sequence manquante ...
                			tester = false;
                			geneDel = gene.get(delCol); //retourne le gene delCol
                 			int geneSize = geneDel.length(); //retourne la longueur du delCol
                 			for( int b = 0; b <= geneSize -2; b++) //tant qu'on a pas atteint la longueur
                 					manquante = (manquante +'?'); //on ajoute un ? 
                 				gene.set(delCol, manquante);
                 				System.out.println(delRow);
                 			}
     
                			 if(tester == false){
     
                  				geneDel = gene.get(delCol);
                  				gene.set(delCol,geneDel);
                  			}
     
     
                			out.write(name + " " + toString()+ "\n" );
     
                  	}//fin do		
     
                   	while((content[i].startsWith("Taxon"))&&!(content[i].trim()).equals(";")&&!(content[i].trim()).equals("END;") );
     
                    	}//end of while

  4. #4
    Membre chevronné Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Par défaut
    Que représente le tableau content ? De plus i n'est pas déclaré. J'imagine qu'il doit l'être plus haut, mais si tu as utilisé ce i avant, sa valeur n'est peut-être pas à 0.

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/06/2015, 15h59
  2. modification controle contenus dans une arraylist
    Par bobby51 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 21/04/2009, 15h48
  3. Réponses: 1
    Dernier message: 08/03/2004, 11h35
  4. [JDialog] Modification dans une fenêtre
    Par cefabien dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 01/10/2003, 13h18
  5. Erreur lors de modification d'une table
    Par seb.49 dans le forum SQL
    Réponses: 11
    Dernier message: 13/01/2003, 17h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo