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 :

utiliser stringtokenizer avec une chaine comme délimiteur


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut utiliser stringtokenizer avec une chaine comme délimiteur
    Bonjour je voudrais découper une chaine en ayant comme séparateur toute une autre chaine : " AND " , apparemment il considères les délimiteur le " " "A" "N" "D", est ce qu'il y a un moyen d'avoir comme délimiteur toute une chaine de caractères ?

    voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    StringTokenizer st3 = new StringTokenizer(temp2, " AND ");
            	while (st3.hasMoreTokens()) 
            	{ 
            	    modele.addRow(new String [] {st3.nextToken()});}
            	}
    Merci d'avance.

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    Bonjour,

    A priori le code doit découper la chaine avec code délimiteur " AND ".

    Si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String temp2 = "123  AND 456 AND 789";
    StringTokenizer st3 = new StringTokenizer(temp2, " AND ");
    List<String> list = new ArrayList<String>();
    while (st3.hasMoreTokens()) {
    	list.add(st3.nextToken());
    }
    La liste contiendra bien trois valeurs qui sont "123", "456", "789".

    Ton problème doit être ailleurs je pense.

  3. #3
    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
    Plus puissant que le StringTokenizer.... le split

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    String str = "123 AND 456 AND 789";
    String[] result = str.split(" AND ");
    result = |123|456|789|
    Il était une fois [...] Et ils vécurent heureux et eurent beaucoup d'enfants!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Citation Envoyé par eric39 Voir le message
    Bonjour,

    A priori le code doit découper la chaine avec code délimiteur " AND ".

    Si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String temp2 = "123  AND 456 AND 789";
    StringTokenizer st3 = new StringTokenizer(temp2, " AND ");
    List<String> list = new ArrayList<String>();
    while (st3.hasMoreTokens()) {
    	list.add(st3.nextToken());
    }
    La liste contiendra bien trois valeurs qui sont "123", "456", "789".

    Ton problème doit être ailleurs je pense.
    Cette méthode posera problème si jamais on a un truc dans ce genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String temp2 = "12A3  AND 456 AND 789";
    StringTokenizer découpe selon les caractères qui se trouvent dans le paramètre delim du constructeur en les excluant. faudrai utiliser la méthode String.split si tu travaille avec java 5 ou +.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tonString.split(" AND ");

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 380
    Points : 480
    Points
    480
    Par défaut
    J'ai effectivement tout faux, je me suis emflammé un peu vite!!

    Désolé.

  6. #6
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    merci bcp!! ça marche très très bien avec split

    est ce qu'on peut utiliser split avec plusieur délimiteurs?
    par exemple " AND " et " OR " en même temps?

    merci

  7. #7
    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
    il suffit de consulter la javadoc, on peut lire :
    split

    public String[] split(String regex)

    Splits this string around matches of the given regular expression.
    donc avec la bonne expression régulière no soucy
    Ignorer c'est aussi croire que l'on sait.
    Merci d'essayer d'écrire correctement.
    Pas de questions techniques par MP SVP.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    338
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2008
    Messages : 338
    Points : 402
    Points
    402
    Par défaut
    Bien sûr avec la même méthode split qui prend une expression réguliere en paramètre dans ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tonString.split(" AND | OR ");

  9. #9
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    merci à vous tous, ça marche a merveille

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

Discussions similaires

  1. Utiliser My.Resouces avec une chaine
    Par Paounet dans le forum VB.NET
    Réponses: 2
    Dernier message: 02/04/2010, 14h30
  2. utiliser une chaine comme variable
    Par Pitrivief dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/11/2009, 21h43
  3. Réponses: 4
    Dernier message: 13/03/2009, 18h20
  4. Réponses: 2
    Dernier message: 18/09/2008, 10h49
  5. [debutant]fonction "split" avec une chaine comme m
    Par EpOnYmE187 dans le forum Débuter
    Réponses: 2
    Dernier message: 07/11/2005, 22h46

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