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
    Membre habitué
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    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 chevronné
    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
    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 Expert 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 : 35
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 031
    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|

  4. #4
    Membre chevronné
    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
    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 chevronné
    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
    Par défaut
    J'ai effectivement tout faux, je me suis emflammé un peu vite!!

    Désolé.

  6. #6
    Membre habitué
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    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 émérite Avatar de remika
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    806
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 806
    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

  8. #8
    Membre chevronné
    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
    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
    Membre habitué
    Inscrit en
    Avril 2009
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 9
    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