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

Servlets/JSP Java Discussion :

Séparer une chaine de caractères sans split


Sujet :

Servlets/JSP Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 80
    Par défaut Séparer une chaine de caractères sans split
    Bonjour tous le monde

    J'ai une appli J2EE, dans laquelle je dois récupérer une chaine. Celle ci se compose d'un id, d'un "~" et d'un libellé.
    Le "~" est issu de nos beans, dans lequels on a remplacé les methode tostring pour renvoyer des chaines de ce type (avec une séparateu "~").
    La partie de l'appli enJ2SE, accepte parfaitement le split.
    Mais la, la partie J2EE non.
    Avec le prof on a regarde et ce serai du au moteur : en effet en J2SE on va jusqu'au JDK 1.5, alors qu'en J2EE, le moteur s'arrète au 1.3.
    Je sais pas s'il en existe d'autres, mais de toute façon on y aura pas accès si c'est le cas.

    ma question est : il y a-t-il un autre moyen de séparer la chaine de caractère avec un séparateur en référence?
    On a bien essayé le substring, mais il faut un ondice, qu'on ne peut pas renseigner....

    Avez une idée pour mon problème?

    Merci beaucoup d'avance

  2. #2
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Tu peux utiliser la classe StringTokenizer comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    String chaine="id1~libelle1" ;
    StringTokenizer stringTokenizer = new StringTokenizer(chaine,"~"); 
    String[] items = new String[stringTokenizer.countTokens()] ; 
    int i = 0;
    while ( stringTokenizer.hasMoreTokens() )
    { 
       items[i] = stringTokenizer.nextToken(); 
       i++;
    }
    String id=items[0] ;
    String libelle=items[1];

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 80
    Par défaut
    Merci

    Ca marche bien, mais on avait trouvé une autre solution du coup (qui marche aussi hein ^^) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    String chn= String.valueOf(resultat.get(0));
    String def ="";
    int n=0;
    while ((n<chn.length())&&(chn.charAt(n)!='~')){
         def=def+chn.charAt(n);
         n++;
    }
    Vala

    Merci beaucoup

  4. #4
    Membre émérite Avatar de yann2
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 897
    Par défaut
    Bonjour

    Citation Envoyé par ndsaerith
    Merci

    Ca marche bien, mais on avait trouvé une autre solution du coup (qui marche aussi hein ^^) :

    String chn= String.valueOf(resultat.get(0));
    String def ="";
    int n=0;
    while ((n<chn.length())&&(chn.charAt(n)!='~')){
    def=def+chn.charAt(n);
    n++;
    }

    Vala

    Merci beaucoup
    Attention à la concaténation de chaines !!! Il faut préférer la classe StringBuffer.
    Sinon pour ton exemple, indexOf et substring() parait plus indiqué :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    String chn= String.valueOf(resultat.get(0));
    int indexOfTilde = chn.indexOf('~');
    String def = chn.substring(0, indexOfTilde-1);
    String libelle = chn.substring(indexOfTilde+1);
    L'indice que tu voulais dans ton premier poste est String.indexOf(char c) (C'est la doc 1.4 mais la méthode est disponible depuis la version 1.0 )

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 26
    Par défaut
    Citation Envoyé par c_nvy Voir le message
    Tu peux utiliser la classe StringTokenizer comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    String chaine="id1~libelle1" ;
    StringTokenizer stringTokenizer = new StringTokenizer(chaine,"~"); 
    String[] items = new String[stringTokenizer.countTokens()] ; 
    int i = 0;
    while ( stringTokenizer.hasMoreTokens() )
    { 
       items[i] = stringTokenizer.nextToken(); 
       i++;
    }
    String id=items[0] ;
    String libelle=items[1];
    Impeccable c'est ce dont je cherchais merci beaucoup.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 09/08/2014, 17h57
  2. [BO XI R2] Séparer une chaine de caractère
    Par perrine1985 dans le forum Deski
    Réponses: 2
    Dernier message: 16/04/2008, 10h01
  3. Réponses: 2
    Dernier message: 14/11/2007, 09h56
  4. Séparer une chaine de caractère
    Par fabienschmitt dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 08/11/2006, 14h57
  5. Réponses: 15
    Dernier message: 23/01/2006, 04h35

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