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 :

Comparaison de chaque ligne de 2 tableau java


Sujet :

Collection et Stream Java

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut Comparaison de chaque ligne de 2 tableau java
    Bonjour tout le monde ,
    j'ai besoin de votre aide.
    problème:
    je récupère des valeurs dont j'ai besoin qui sont (token8,token11,token12) à partir d'un fichier .txt .
    j'ai créé 2 tableau le premier tableau Tab2 contient des valeurs de Fil et le 2eme tableau Tab1 contient autres composants.
    Chaque fil relie 2 composant
    But: récupérer kel fil est relié avec 2 autres composants
    exp ligne 1)token8=f1, token11=1, token12=3
    ligne2)token8=G1, token11=1, token12=4
    ligne 3) token8=K1, token11=3, token12=5
    résultat que je souhaite avoir: f1(G1,k1)

    code:
    import java.io.*;

    public class Tab {
    public static String toString(String [] Tab){
    String s="";
    for(int i=0;i<Tab.length;i++)
    s+=Tab[i];
    return s;
    }
    public static String [] getTab(String [] Tab){
    return Tab;
    }

    public static void tableauIdentifiantNoeudSousReseaux(){
    String token1="",token2,token3,token4,token5,token6,token7,token8,token9,token10,token11,token12,token13,token14,token15,token16,token17,token18;
    String fileName = "CircuitEnSerie.txt";
    String s;
    String [] TabO= new String[3];
    String [] TabF= new String[3];
    String [] Tab1= new String[3];
    String [] Tab2= new String[3];
    try {Reader file = new FileReader (fileName);
    LineNumberReader fic=new LineNumberReader(file);

    while((s=fic.readLine())!= null){
    //int indice = 0; // indice du tableau
    int i=s.indexOf("#", 0);
    token1=s.substring(0, i);
    token2=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token3=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token4=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token5=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token6=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token7=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token8=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token9=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token10=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token11=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token12=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token13=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token14=s.substring(i+1, s.indexOf("#", i+1));
    i=s.indexOf("#", i+1);
    token15=s.substring(i+1, s.indexOf("#", i+1));
    //test

    if (!(token7.equals("Fil"))){
    //int t8=0;

    TabO[0]=token8;
    TabO[1]=token11;
    TabO[2]=token12;

    System.out.println(toString(TabO));
    Tab1=getTab(TabO);


    }

    else {

    TabF[0]=token8;
    TabF[1]=token11;
    TabF[2]=token12;
    System.out.println(toString(TabF));
    Tab2=getTab(TabF);
    }

    // la comparaison que je fait içi ne marche pas
    for(int j=0;j<Tab1.length;j++)
    { for (int k=0;k<Tab2.length;k++)
    {
    if(Tab1[j]==Tab2[k])
    System.out.println(Tab1[0]+","+Tab2[0]);
    }
    }

    }


    }
    catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }

    }
    public static void main (String arg[])
    {
    tableauIdentifiantNoeudSousReseaux();

    }
    }

    mon fichier: CircuitEnSerie.txt

    407#c66#const7#rep1#etape10#1#GeneU#G1#false#-0.0876586377847689#1#2#0#false#6#0.1#
    407#c66#const7#rep1#etape10#2#Lampe#L1#false#-0.0876586377847689#3#4#0#false#1.8#6#0.3#0#
    407#c66#const7#rep1#etape10#3#Lampe#L2#false#-0.0876586377847689#5#6#0#false#1.8#6#0.3#0#
    407#c66#const7#rep1#etape10#4#Interrupteur#K1#false#-0.0876586377847689#7#8#0#false#false#0.01#
    407#c66#const7#rep1#etape10#5#Fil#F1#false#0.0876586377847688#1#3#0#false#0.027584#0.001#
    407#c66#const7#rep1#etape10#6#Fil#F2#false#0.0876586377847688#4#7#0#false#0.027584#0.001#
    407#c66#const7#rep1#etape10#7#Fil#F3#false#0.0876586377847688#8#5#0#false#0.027584#0.001#
    407#c66#const7#rep1#etape10#8#Fil#F4#false#0.0876586377847688#6#2#0#false#0.027584#0.001#

    Merci d'avance

  2. #2
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Bonjour,

    Pouvez-vous mettre votre code dans les balises code ?
    [ code][/code]

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut
    Bonjour,
    vous trouverez ci-joint mon code
    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
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    import java.io.*; 
     
    public class Tab { 
    public static String toString(String [] Tab){ 
    String s=""; 
    for(int i=0;i<Tab.length;i++) 
    s+=Tab[i]; 
    return s; 
    } 
    public static String [] getTab(String [] Tab){ 
    return Tab; 
    } 
     
    public static void tableauIdentifiantNoeudSousReseaux(){ 
    String token1="",token2,token3,token4,token5,token6,token7,token8,token9,token10,token11,token12,token13,token14,token15,token16,token17,token18;
    String fileName = "CircuitEnSerie.txt"; 
    String s; 
    String [] TabO= new String[3]; 
    String [] TabF= new String[3]; 
    String [] Tab1= new String[3]; 
    String [] Tab2= new String[3]; 
    try {Reader file = new FileReader (fileName); 
    LineNumberReader fic=new LineNumberReader(file); 
     
    while((s=fic.readLine())!= null){ 
    //int indice = 0; // indice du tableau 
    int i=s.indexOf("#", 0); 
    token1=s.substring(0, i); 
    token2=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token3=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token4=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token5=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token6=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token7=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token8=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token9=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token10=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token11=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token12=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token13=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token14=s.substring(i+1, s.indexOf("#", i+1)); 
    i=s.indexOf("#", i+1); 
    token15=s.substring(i+1, s.indexOf("#", i+1)); 
    //test 
     
    if (!(token7.equals("Fil"))){ 
    //int t8=0; 
     
    TabO[0]=token8; 
    TabO[1]=token11; 
    TabO[2]=token12; 
     
    System.out.println(toString(TabO)); 
    Tab1=getTab(TabO); 
     
     
    } 
     
    else { 
     
    TabF[0]=token8; 
    TabF[1]=token11; 
    TabF[2]=token12; 
    System.out.println(toString(TabF)); 
    Tab2=getTab(TabF); 
    } 
     
    // la comparaison que je fait içi ne marche pas 
    for(int j=0;j<Tab1.length;j++) 
    { for (int k=0;k<Tab2.length;k++) 
    { 
    if(Tab1[j]==Tab2[k]) 
    System.out.println(Tab1[0]+","+Tab2[0]); 
    } 
    } 
     
    } 
     
     
    } 
    catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 
     
    } 
    public static void main (String arg[]) 
    { 
    tableauIdentifiantNoeudSousReseaux(); 
     
    } 
    }

    Merci d'avance

  4. #4
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(int j=0;j<Tab1.length;j++) {
      for (int k=0;k<Tab2.length;k++) { 
        if(Tab1[j]==Tab2[k]) 
          System.out.println(Tab1[0]+","+Tab2[0]); 
      } 
    }
    Vous comparez des objets String, il faut les comparer de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    for(int j=0;j<Tab1.length;j++) {
      for (int k=0;k<Tab2.length;k++) { 
        if(Tab1[j].equals(Tab2[k])) 
          System.out.println(Tab1[0]+","+Tab2[0]); 
      } 
    }

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut
    Merci pour la réponse
    j'avais testé cela avant mais j'avais pas le resultat que je souhaitais avoir
    voila le resultat obtenue:

    G112
    L134
    L256
    K178
    F113
    F247
    K1,F2 c' bon
    F385
    K1,F3c'bon
    F462

    alors que le résultat que je souhaite avoir est:

    F1,(G1,L1)
    F2(L1,K1)
    F3(k1,L2)
    F4(L2,G1)

    le problème avec le resultat que j'ai maintenant c'est que je récupère que des resultat pour K1 et pas pour les autres

    Voila un résumé du problème que j'ai , je suis à votre disposition si vous avez des questions.

  6. #6
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    Ceci :
    G112
    L134
    L256
    K178
    est dû à cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(toString(TabO));
    Ceci :
    F113
    F247
    F385
    F462
    est dû à cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(toString(TabF));
    et ceci :
    K1,F2
    K1,F3
    est dû à cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(Tab1[0] + "," + Tab2[0]);

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut
    exact

    for(int j=0;j<Tab1.length;j++) {
    for (int k=0;k<Tab2.length;k++) {
    if(Tab1[j].equals(Tab2[k]))
    System.out.println(Tab1[0]+","+Tab2[0]);
    }
    }

    le probleme ce trouve dans cet boucle
    il me retourne comme resultat ke de k1
    alors ke je veux les autres aussi par exp: F1G1 ou F2L2 etc

  8. #8
    Membre chevronné
    Inscrit en
    Avril 2010
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 239
    Par défaut
    J'ai l'impression que vous ne stockez en tout que deux lignes au plus : Tab1 et Tab2.
    Du coup, vous vous retrouvez avec la ligne en cours et la dernière ligne "Fil" à chaque passage ...

Discussions similaires

  1. Réponses: 5
    Dernier message: 10/11/2010, 15h34
  2. [CSS] [FAQ] Comment mettre une bordure entre chaque lignes d'un tableau
    Par tzilliox dans le forum Contribuez
    Réponses: 0
    Dernier message: 12/10/2009, 11h37
  3. Réponses: 2
    Dernier message: 20/10/2008, 09h24
  4. Listbox dans chaques lignes d'un tableau
    Par benjamin-mermoz dans le forum ASP.NET
    Réponses: 1
    Dernier message: 24/06/2008, 15h39
  5. trait en dessous de chaque ligne d'un tableau
    Par auduma dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 14/04/2005, 13h51

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