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

avec Java Discussion :

Traitement tableaux de caractères de longueur fixe


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2012
    Messages : 59
    Par défaut Traitement tableaux de caractères de longueur fixe
    Bonjour ,

    voilà , je dispose de deux tableaux dont la longueur est fixée et égale à 10 et dont les éléments sont aussi fixés, tableau1 et tableau2

    tableau1 = new char [10];
    char[] tableau1 = {’A’, ’Z’, ’G’,’J’,’U’,’K’,’E’,’B’,’V’,’D’};

    tableau2 = new char [10];
    char[] tableau2 = {’B’, ’U’, ’Z’,’K’,’X’,’V’,’N’,’L’,’M’,’E’};

    On nous demande de n'utiliser que ces deux tableaux pour trouver les caractères en commun entre les deux tableaux, en d'autres termes , arriver au résultat:
    tableau1={’Z’,’U’,’K’,’E’,’B’,’V’,}; je pense que la redimension d'un tableau est impossible, alors j'ai pensé a utiliser deux boucles imbriquées pour comparer les caractères des deux tableaux, à chaque fois que je trouve le caractère en commun je le garde dans le tableau1 sinon, je le supprime du tableau1et je fais un décalage de tous les caractères en ajoutant un blanc à la fin du tableau1
    le code est comme ceci mais il plante
    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
    public static char[] jointure(char[] tableau1, char[] tableau2){
    		for(int i=0; i<10; i++)
    			for(int j=0; j<10; j++)
    				if(tableau1[i]==tableau2[j]){ 
    					tableau1[i]=tableau2[j];
    				}
    				else 
    				{int k=i;
    					while (k <10) {
    					tableau1[k]=tableau1[k+1];
    					tableau1[k+1]=' ';
    					k++;
    				}
    				}
     
    		return tableau1;
    	}
    serait ce possible de m'aider un peu svpppppppp

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Tu as plusieurs solutions, utiliser une List, concaténer un String et utiliser sa méthode toCharArray pour avoir le tableau de char.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    StringBuilder sb = new StringBuilder();
    for(int i=0; i<tableau1.length; i++){
    	for(int j=0; j<tableau2.length; j++){
    		if(tableau1[i]==tableau2[j]){ 
    			sb.append(tableau1[i]);
    		}
    	}
    }
    return sb.toString().toCharArray();
    A+.

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 582
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Tu as plusieurs solutions, utiliser une List, concaténer un String et utiliser sa méthode toCharArray pour avoir le tableau de char.
    Je ne crois pas que ce soit le principe de l'exercice ^^.

    Citation Envoyé par masoum Voir le message
    je pense que la redimension d'un tableau est impossible,
    Exactement, du coup on peut se demander comment tu es censé fournir un tableau de taille inférieure à ceux que tu as déjà.
    Si ça te convient de juste mettre des blancs pour remplir la fin du tableau et faire comme si c'était vide, très bien.

    Citation Envoyé par masoum Voir le message
    alors j'ai pensé a utiliser deux boucles imbriquées pour comparer les caractères des deux tableaux, à chaque fois que je trouve le caractère en commun je le garde dans le tableau1 sinon, je le supprime du tableau1et je fais un décalage de tous les caractères en ajoutant un blanc à la fin du tableau1
    Il y a plus efficace mais admettons.
    Regardons ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(tableau1[i]==tableau2[j]){ 
      tableau1[i]=tableau2[j];
    }
    Elle sert à quoi la deuxième ligne ? Non, elle ne dérange pas, mais sans rire, elle sert à quoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for(int i=0; i<10; i++)
      for(int j=0; j<10; j++)
        if(tableau1[i]==tableau2[j]){
          // ICI
    Est-ce que tu penses vraiment que dès que tu arrives à la ligne // ICI, tu es en mesure de dire si oui ou non, tableau1[i] apparaît quelque part dans tableau2 ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par thelvin
    Je ne crois pas que ce soit le principe de l'exercice ^^.
    Effectivement .

    Mais je trouve qu'il est plus facile de supprimer dans le premier tableau ceux qui ne se trouve pas dans le second tableau. Ensuite tu déplaces les éléments vers la gauche en comblant les cases vides.

    A+.

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Citation Envoyé par andry.aime
    Ensuite tu déplaces les éléments vers la gauche en comblant les cases vides.
    ça serait un peu difficile mais le mieux c'est que tu vides ensuite le tableau2 (remplacer tous les char par ' ' un espace) et puis tu le remplies avec les cases qui ne sont pas des espaces du tableau1.
    PS: quand j'ai parlé de supprimer des éléments c'est de les remplacer par un espace.

    A+.

  6. #6
    Membre confirmé Avatar de TheZopo
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 29
    Par défaut
    Voilà comment je procéderais :

    Tu prend la case 0 du tableau 1
    Tu vérifie si la case 0 du tableau correspond a la case 0 du tableau 2
    Tu vérifie si la case 0 du tableau correspond a la case 1 du tableau 2
    ...
    Tu vérifie si la case 0 du tableau correspond a la case 9 du tableau 2

    Si deux cases correspondent, tu remplace une valeur du tableau 2 (grâce a un compteur) par la valeur en commun

    Et tu fait ça pour toutes les cases (avec des boucles svp )

    Je vais te faire un exemple de code, mais essaye de le faire par toi même avant de le regarder
    EDIT : Here --> http://pastebin.com/Q9QCc8Fz

    PS : Je n'est pas testé, mais je pense que ça marche

Discussions similaires

  1. Réponses: 9
    Dernier message: 13/10/2006, 15h39
  2. Déclarer un tableau de longueur fixe
    Par horneth dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 18/08/2006, 22h26
  3. [XSL] Traitement chaîne de caractères
    Par VolaiL dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 29/03/2006, 16h55
  4. Tableaux de caractères
    Par spilarix dans le forum C++
    Réponses: 12
    Dernier message: 28/03/2006, 23h04
  5. Comment enregistrer un stream de longueur fixe ?
    Par Alcarbone dans le forum MFC
    Réponses: 5
    Dernier message: 13/04/2003, 20h14

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