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

Langage Java Discussion :

[String] Extraction chaine de caractères [Débutant(e)]


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut [String] Extraction chaine de caractères
    Bonjour,
    Ma chaine de caractère est :
    Le Nom~Le Prenom~Le Sexe
    Si j'ai : Van Pipe~Mohamed~M
    c'est parfait.
    Mais si une donnée manque, par exemple : Van Pipe~~M
    Il me renvoie le M dans le prenom. Y a t'il moyen d'y remédier? En sachant que la chaine de caractère ne peut être modifiée (cad que je ne peut rajouter un espace si le prenom est vide)

    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    StringTokenizer donneePatient = new StringTokenizer(machaine,"~");
    String nom=machaine.nextToken().toString();
    String prenom=machaine.nextToken().toString();
    String sexe=machaine.nextToken().toString();

  2. #2
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String machaine = "Sans prenom~~M";
     
    String[] decompo = machaine.split("~");
    System.out.println("nom "+decompo[0]);
    System.out.println("prenom "+decompo[1]);
    System.out.println("sexe "+decompo[2]);
    euh faut catcher l'ArrayIndexOutOfBoundsException aussi si sexe est vide aussi

  3. #3
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Est-ce que la donnée sexe et nom sont toujours présentes et la donnée prénom absente éventuellement ?

  4. #4
    Membre éprouvé
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Points : 1 085
    Points
    1 085
    Par défaut
    Citation Envoyé par remika
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String machaine = "Sans prenom~~M";
     
    String[] decompo = machaine.split("~");
    System.out.println("nom "+decompo[0]);
    System.out.println("prenom "+decompo[1]);
    System.out.println("sexe "+decompo[2]);
    euh faut catcher l'ArrayIndexOutOfBoundsException aussi si sexe est vide aussi
    Ca revient exactement et ne change pas le problème...

    Et ctacher ArrayIndexOutOfBoundsException pour moi c'est bof...

  5. #5
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    si sexe est toujours présent, ça résout le problème

  6. #6
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    sinon

    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
       	String machaine = "Van Pipe~~";
     
       	String[] decompo = machaine.split("~");
     
    	String nom = "";
    	String prenom = "";
    	String sexe = "";
     
    	int n = decompo.length;
     
    	if(n>0) {
    		nom = decompo[0];
     
    		if(n>1) {
    			prenom = decompo[1];
     
    			if(n>2) {
    				sexe = decompo[2];
    			}
    		}
    	}
     
    	System.out.println("nom "+nom);
    	System.out.println("prenom "+prenom);
    	System.out.println("sexe "+sexe);

  7. #7
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    non, chaque champ peut ne pas exister
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String [] monTableauDeChamps=maChaine.split("~");
    a l'air de résoudre le problème mais je ne sais pas si c'est très propre ou si il existe d'autres manière...
    Merci de vos réponse

  8. #8
    Membre éclairé Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    Points : 861
    Points
    861
    Par défaut
    euh ya plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	String machaine = "Van Pipe~~";
     
       	String[] decompo = machaine.split("~",3);
     
    	System.out.println("nom "+decompo[0]);
    	System.out.println("prenom "+decompo[1]);
    	System.out.println("sexe "+decompo[2]);

  9. #9
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Points : 1 996
    Points
    1 996
    Par défaut
    A l'aide de StringTokenizer

    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
     
              String[] decomp = new String[3];
              final String DELIMITER = "~";
              StringTokenizer st = new StringTokenizer("Van Pier~~M", DELIMITER, true);
              int index = 0;
              while (st.hasMoreElements()) {
                 String part = st.nextToken();
                 if (DELIMITER.equals(part)) {
                    ++index;
                 }
                 else {
                    if (part != null) {
                     decomp[index] = part;
                    }
                    else {
                     // Traite les valeurs manquantes en fonction du champ
                        decomp[index] = part;
                    }
                 }
              }
     
              for (int i = 0; i < decomp.length; ++i) {
               System.out.println(decomp[i]); 
              }

  10. #10
    Futur Membre du Club
    Inscrit en
    Février 2006
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    MERCI BEAUCOUP

    Les deux réponses fonctionnent à moi de choisir maintenant lol

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 05/02/2006, 22h59
  2. [String]Extraction de chaîne
    Par sangei dans le forum Langage
    Réponses: 6
    Dernier message: 19/12/2005, 11h25
  3. Réponses: 5
    Dernier message: 15/11/2005, 12h57
  4. Extraction chaine
    Par ptitsoleil87 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 10/02/2005, 10h53
  5. Réponses: 10
    Dernier message: 22/05/2004, 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