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 :

découper une chaine de caractères


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Par défaut découper une chaine de caractères
    Bonjour à tous,
    Je suis confronté à un problème et j'aimerai avoir votre avis pour le résoudre.
    A la base j'ai une chaine de caractères.
    Je dois la découper selon différentes règles en sous chaines.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    T12M8 -> T12 et M8
    T1 -> T1
    TR1 -> TR1
    PT4Z5 -> PT4 et Z5
    C23 -> C23
    Le découpage est réalisé pour les chaines supérieures à 3 caractères.

    Je pensais utiliser la fonction split avec les expressions régulières mais je pense que cela va poser problème dans certains cas non?
    Auriez vous une idée pour réaliser cela?

    L'autre methode est la lecture caractère par caractère mais à ce moment la cela risque d'etre long et fastidieux.

    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Que tu le fasses caractère par caractère, ou avec une expression régulière, tu dois d'abord définir de manière formelle la règle de découpage.

    Une fois que tu l'auras, exprimer la règle sous forme d'expression régulière devrait être rapide.

    Je ne pense pas que split te permettra d'extraire les groupes, il faudra a mon avis utiliser Pattern et Matcher.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Par défaut
    En fait je vais exprimer les regles :
    - Les sequences de 1,2,3 lettres sont renvoyées sans découpage.
    - Si je lis une lettre suivie d'un chiffre on lit tant qu'on a pas de nouvelles lettres (exemple M12T3 -> M12 et T3, M2C3 -> M2 et C3)
    - Si je lis une lettre suivie d'une lettre tant qu'on a pas de nouveaux chiffres (exemple MTP1Z3 -> MTP1 et Z3)
    - On peut aussi combiner les deux (exemple MP1T12Z8 -> MP1 et T12 et Z8)

    Difficile non?

  4. #4
    Membre expérimenté
    Avatar de vahid
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 228
    Par défaut
    Slt
    bof en fait t'as qu'un seul cas ca se résoud a couper entre un chiffre et une lettre non ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    181
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 181
    Par défaut
    oui les coupures se font selon un chiffre une lettre le signe - ou * (javais oublié de le préciser).

    mais je ne trouve pas une unique facon de decouper cela

  6. #6
    Membre expérimenté
    Avatar de vahid
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 228
    Par défaut
    Bah moi je suis ptetre gore mais je le ferai a la main (en meme temps je suis naze en regex)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    char current = str[0];
    while(j ai des caractere){
    next = str[cpt];
    if( isSplitPattern(current, next) ){
       arraylist.add( s.substring(start, current) );
       start = next;
    }
    current = next;
    }
    A quelques gestion de fin de chaines pret

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

Discussions similaires

  1. Bash - Découper une chaine de caractères
    Par nicolas.pissard dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 16/12/2014, 13h18
  2. Découper une chaine de caractères
    Par momomafioso dans le forum ASP.NET
    Réponses: 1
    Dernier message: 28/06/2007, 11h11
  3. [SQ2K] Découper une chaine de caractères
    Par maitrebn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/04/2007, 19h22
  4. Réponses: 6
    Dernier message: 15/04/2007, 13h06
  5. [VBA] Découper une chaine de caractères
    Par rantanplan81 dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/04/2007, 15h26

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