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

Java Discussion :

les boucles for en java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de blackhock
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 75
    Par défaut les boucles for en java
    Bonjour à tous, je viens vous voir pour un petit souci mais qui me bloque énormément :
    J’ai deux tableaux de strings qui ne sont pas égaux, je veux récupérer les chaînes de caractères qui existe dans un tableaux mais pas dans l’autre (la différence entre les deux), voici 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
     
    public class Test {
     
    	private String[] toto = { "a", "b", "c", "d" };
    	private String[] titi = { "a", "b", "c" };
     
    	public String test() {
     
    		for (int i = 0; i < toto.length; i++) {
    			for (int j = 0; j < titi.length; j++) {
    				if (!toto[i].equals(titi[j])) {
    				System.out.println("\""
    						+ toto[i]
    						+ " \""
    							+ " est la seule chaîne de caractères qui ne fait pas parti de titi");
    				}
    			}
    		}
    		return null;
     
    	}
     
    	public String[] getToto() {
    		return toto;
    	}
     
    	public String[] getTiti() {
    		return titi;
    	}
    }
    Je veux récupérer le string ‘’d’’ mais à la compilation j’ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    "a " est la seule chaîne de caractères qui ne fait pas parti de titi
    "a " est la seule chaîne de caractères qui ne fait pas parti de titi
    "b " est la seule chaîne de caractères qui ne fait pas parti de titi
    "b " est la seule chaîne de caractères qui ne fait pas parti de titi
    "c " est la seule chaîne de caractères qui ne fait pas parti de titi
    "c " est la seule chaîne de caractères qui ne fait pas parti de titi
    "d " est la seule chaîne de caractères qui ne fait pas parti de titi
    "d " est la seule chaîne de caractères qui ne fait pas parti de titi
    "d " est la seule chaîne de caractères qui ne fait pas parti de titi
    Pourriez-vous m’aider svp merci

  2. #2
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Et avec un débugueur tu ne vois rien ?

    En tous les cas, je pense que il se passe la chose suivante :
    • première chaine examinée de toto est a
    • comparée à la premiere chaine de titi qui est a ; c'est égal, donc on passe à la suivante de titi
    • comparée à la deuxième chaîne de titi qui est b : c'est pas égal, donc on considère que a est une chaîne unique


    Donc c'est pas bon

  3. #3
    Membre confirmé Avatar de blackhock
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 75
    Par défaut
    Tout a fait je suis d'accord, j'ai compris le fonctionnement mais comment je peux faire pour récupérer ma chaine de caractères que je veux, je sais que c'est un problème d'indentation des boucles mais comment faire?
    Merci à tous

  4. #4
    Membre confirmé Avatar de arnaud036
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2007
    Messages : 201
    Par défaut
    Voici un exemple que j'ai fais:

    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
    public static void main(String[] args) {
     
    		String[] toto = { "a", "b", "c", "d", "e"};
    		String[] titi = { "a", "b", "c" };
     
    		for (int i = 0; i < toto.length; i++) {
    			if(Arrays.binarySearch(titi, toto[i]) >= 0){
    				continue;
    			}
    			else System.out.println("\""
    					+ toto[i]
    							+ " \""
    							+ " est la seule chaîne de caractères qui ne fait pas parti de titi");
    			}
    	}
    maintenant que je t'ai donnée les basses adapte le pour le faire sur les deux tableaux et ensuite supprimée les doublons

    Si tu as des problèmes n'hésite pas !

  5. #5
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Pourquoi des tableaux et non pas des listes ?

    La méthodes "contains()" de ces dernières faciliterait grandement ton travail.
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  6. #6
    Membre confirmé Avatar de blackhock
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 75
    Par défaut
    Merci pour toutes vos réponses, mais quand je change l'ordre dans mes tableaux j'obtiens pas le résultat souhaité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    	public static void main(String[] args) {
     
    		String[] toto = { "a", "b", "c", "d", "e" };
    		String[] titi = { "c", "a", "b" };
     
    		for (int p = 0; p < toto.length; p++) {
    			if (Arrays.binarySearch(titi, toto[p]) >= 0) {
    				continue;
    			} else
    				System.out.println("\"" + toto[p] + " \"");
    		}
    	}
    et j'obtiens Je ne sais pas trop pourquoi...?, encore merci
    Cordialement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplacer les boucles for
    Par Lost in dans le forum Images
    Réponses: 7
    Dernier message: 19/07/2008, 16h36
  2. les boucles for..next
    Par dispa dans le forum Windows Forms
    Réponses: 3
    Dernier message: 27/06/2007, 14h23
  3. Réponses: 2
    Dernier message: 07/05/2007, 16h46
  4. Réponses: 3
    Dernier message: 20/09/2006, 22h35
  5. [VBS]Bug sur les boucles for.
    Par méphistopheles dans le forum VBScript
    Réponses: 7
    Dernier message: 24/03/2006, 22h17

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