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 :

Parcours particulier d'un tableau en Java ?


Sujet :

Collection et Stream Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 20
    Points : 16
    Points
    16
    Par défaut Parcours particulier d'un tableau en Java ?
    Bonjour tous le monde
    je suis debutante en java
    bn j'ai crée un tableau qui contient ces element
    5 ,8, 12 ,1/4, 2/88 ,3/989 ,CC,O
    dans ce tableau je veux lire seulement le morçeau 2/88 ,3/989
    je l'ai essayer avec la boucle for mais ss resultats
    j'ai besoin de vos aides!
    merci en avance !

  2. #2
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Réponse bête :
    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
    String[] tableau = new String[8];
    tableau[0] = "5";
    tableau[1] = "8";
    tableau[2] = "12";
    tableau[3] = "1/4";
    tableau[4] = "2/88";
    tableau[5] = "3/989";
    tableau[6] = "CC";
    tableau[7] = "O";
     
    for (int i=0; i< tableau.length; i++) {
      if (tableau[i].equals("2/88") || (tableau[i].equals("3/389")) {
        System.out.println("Le morceau est lu !");
      }
    }
    Questions sérieuses :
    Plus sérieusement : Quel est la particularité de ces éléments ? Quel est ton critère pour vouloir "lire" ou non un élément ? Qu'est ce que tu entends par "lire" un élément ? Quel est ton code ? ..
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    Salut,

    Tu peux aussi faire ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for (int i=0; i< tableau.length; i++) {
      if (tableau[i].endsWith("/..")||tableau[i].endsWith("/...")) {
        System.out.println(tableau[i]);
      }
    }

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    Réponse bête :
    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
    String[] tableau = new String[8];
    tableau[0] = "5";
    tableau[1] = "8";
    tableau[2] = "12";
    tableau[3] = "1/4";
    tableau[4] = "2/88";
    tableau[5] = "3/989";
    tableau[6] = "CC";
    tableau[7] = "O";
     
    for (int i=0; i< tableau.length; i++) {
      if (tableau[i].equals("2/88") || (tableau[i].equals("3/389")) {
        System.out.println("Le morceau est lu !");
      }
    }
    Questions sérieuses :
    Plus sérieusement : Quel est la particularité de ces éléments ? Quel est ton critère pour vouloir "lire" ou non un élément ? Qu'est ce que tu entends par "lire" un élément ? Quel est ton code ? ..

    Merci pour ta reponse
    j'ai besoin de lire ces deux chaine afin de tester si ils sont des entiers et puis les stocker dans une base de données .. Bon
    merci encore une fois

  5. #5
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par noraix Voir le message
    Merci pour ta reponse
    j'ai besoin de lire ces deux chaine afin de tester si ils sont des entiers et puis les stocker dans une base de données .. Bon
    merci encore une fois
    Attends me dis pas que mon post répond à ton problème ?
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Robin56 Voir le message
    Attends me dis pas que mon post répond à ton problème ?
    Hmmm :p
    Ta reponse m'a donnée une idée puisque ce que j'ai cité c'est juste un exemple puisque mon le tableau que j'ai varie selon le cas. donc le matching avec startswith and EndsWith devient tres delicat dans ce cas

  7. #7
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Attends me dis pas que mon post répond à ton problème ?
    Tu dois être trop bon c'est pour ça
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  8. #8
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Citation Envoyé par noraix Voir le message
    j'ai besoin de lire ces deux chaine afin de tester si ils sont des entiers et puis les stocker dans une base de données .. Bon
    merci encore une fois
    Tu veux parcourir toute ta liste pour tester les entiers ?

  9. #9
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par Ivelios Voir le message
    Tu dois être trop bon c'est pour ça
    Ah ah y'a pas de risque

    @noraix : comme demandé précédemment, quels sont tes critères qui font que tu ne veuilles vérifier que ces deux là ?
    Responsable Java de Developpez.com (Twitter et Facebook)
    Besoin d'un article/tutoriel/cours sur Java, consulter la page cours
    N'hésitez pas à consulter la FAQ Java et à poser vos questions sur les forums d'entraide Java
    --------
    Architecte Solution
    LinkedIn : https://www.linkedin.com/in/nicolascaudard/

  10. #10
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    je me clarifie
    Mon objectif est de traiter une ligne , savoir s'il veriife des conditions precises .Pour cela je doit decouper la lignes en champs.
    bn le resultat est d'avoir un tableau qui contient ces elements coupée avec la methode Split ( bn ça je pu le faire! pas de probleme)

    alors dans cette ligne on trouve XXXX.XXXX.1/88.3/889.8/788.XXXX.XXX
    alors lorsque j'ai arrivé au traitement des champs 1/88.3/889.8/788 ces champs ne sont pas fixe cas varie d'un ligne à autre pour cela je doit avoir ce morçeau precisement. la methode c'est ou je me suis coincée
    J'espere que c'est clair et explique pourquoi j'ai besoin de prendre ces chaines justement !
    merci

  11. #11
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Non ce n'est pas très clair ^^

    Quand tu dis "pas fixe", c'est les valeurs qui ne le sont pas ? Mais les positions le sont ?

    Si les positions sont fixes, à savoir la 3ème, 4ème et 5ème, alors tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String valeur1 = tonArray[2];
    String valeur2 = tonArray[3];
    String valeur3 = tonArray[4];
    Sinon, si tu veux repérer toutes les chaines de la forme "xxx/yyy", avec des nombres à la place de xxx et yyy, il va falloir tester avec des expressions régulières.

  12. #12
    Membre expérimenté Avatar de Ivelios
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2008
    Messages
    1 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    Points : 1 540
    Points
    1 540
    Par défaut
    Si tu veux savoir si la chaine : 1/88.3/889.8/788 est présente dans le String, pas besoin de le découper en tableau :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import java.util.regex.Pattern;
    boolean resultat = Pattern.compile(Pattern.quote(monStringDeBase), Pattern.CASE_INSENSITIVE).matcher("1/88.3/889.8/788").find();
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  13. #13
    Membre à l'essai
    Inscrit en
    Juillet 2011
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Citation Envoyé par Rei Ichido Voir le message
    Non ce n'est pas très clair ^^

    Quand tu dis "pas fixe", c'est les valeurs qui ne le sont pas ? Mais les positions le sont ?

    Si les positions sont fixes, à savoir la 3ème, 4ème et 5ème, alors tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String valeur1 = tonArray[2];
    String valeur2 = tonArray[3];
    String valeur3 = tonArray[4];
    Sinon, si tu veux repérer toutes les chaines de la forme "xxx/yyy", avec des nombres à la place de xxx et yyy, il va falloir tester avec des expressions régulières.
    hmmm n je pense pas que c'est ça le probeme
    bon je me explique une autre fois
    voila les lignes par exemple:
    XXXX.XXXX.X.1/789.2/890.XXX.XXX
    XXXX.XXXX.X.3/78.XXX.XXX
    XXXX.XXXX.X.5/789.4/890.XXX.XXX

    je peux meme avoir une autre , ça differe selon les cas
    alors les X representent des champs fixe alors que celui en nombre c'est le poids des cargo
    ex : 3/378 c'est 378 tonne dans le cargo num 3 et voila ...
    alors que ma methode consiste a decouper les lignes dans un tableau
    le probleme c'est que le poids se different ne sont pas fixes je peux
    avoir 3 cargo et meme 2
    bon , la solution est juste mettre ces deux chaines separament et les afficher et faire un traitement ( affichage par exemple )

  14. #14
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Points : 446
    Points
    446
    Par défaut
    Dans ce cas, pour chaque chaine, il te faut faire un 2e découpage sur le '/'
    Un exemple rapide:
    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
     
    private static final String CARGO_SEPARATOR = "/";
    	private static final String FIELDS_SEPARATOR = "\\.";
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		String in = "1234.5678.9.1/258.5/46.987.654";
     
    		String[] strings = in.split(FIELDS_SEPARATOR);
    		for (String string : strings) {
    			if (string.contains(CARGO_SEPARATOR)) {
    				handleCargo(string);
    			} else {
    				handleSimpleValue(string);
    			}
    		}
    	}
     
    	private static void handleCargo(String cargoValue) {
    		String[] cargoInfos = cargoValue.split(CARGO_SEPARATOR);
    		System.out.println(String.format("Cargo info found: cargo#%s mass=%s", cargoInfos[0], cargoInfos[1]));
    	}
     
    	private static void handleSimpleValue(String simpleValue) {
    		System.out.println("Simple value found: " + simpleValue);
    	}
    Tu obtiens:
    Simple value found: 1234
    Simple value found: 5678
    Simple value found: 9
    Cargo info found: cargo#1 mass=258
    Cargo info found: cargo#5 mass=46
    Simple value found: 987
    Simple value found: 654

    J'espère que ça t'aidera
    Il est agréable d'avoir le choix. La difficulté est alors de faire le bon (ou le moins pire).

  15. #15
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    Voir le cours "Les expression régulièresavec l’API Regex de Java"

    http://cyberzoide.developpez.com/java/regex/

Discussions similaires

  1. Trier un tableau en JAVA
    Par twingo321 dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 04/10/2007, 08h45
  2. Tableau en java
    Par iftolotfi dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 05/07/2006, 13h04
  3. [Tableaux] Supprimer 1 élément particulier d'1 tableau
    Par harlock59 dans le forum Langage
    Réponses: 22
    Dernier message: 17/05/2006, 16h50
  4. que choisir (tableau avec java)
    Par walid2012 dans le forum Collection et Stream
    Réponses: 27
    Dernier message: 30/04/2006, 12h42
  5. [PL/SQL] Interrogation d'un tableau par JAVA
    Par Titouf dans le forum Oracle
    Réponses: 12
    Dernier message: 08/02/2006, 16h59

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