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 :

extraction d'une donnée d'une chaine de caractères.


Sujet :

Langage Java

  1. #1
    Inactif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 92
    Points : 55
    Points
    55
    Par défaut extraction d'une donnée d'une chaine de caractères.
    Bonjour,
    Je recupere une chaine de caractères dont je veux extraire la version donc 1.

    tout d'abord pour recupérer cette chaine : je fais ceci :

    String version = myMessage.getClass().getPackage().getName();


    qui me donne : fr.hello.essai.ddd.xls.v1.messages

    et j'aimerai extraire le 1 de V1 qui est entre xls. et . messages.

    comment puis-je faire?

  2. #2
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Points : 128
    Points
    128
    Par défaut
    la facon brut c'est 2 coups d'indexOf() une fois en cherchant "xls.v" et une fois avec ".message", puis un substring() , tu devrais arriver à tes fins.

  3. #3
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Points : 128
    Points
    128
    Par défaut
    Tu peux aussi faire un split avec le . , tu auras un tableau de string dont un élément contenant "v1"

  4. #4
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    Citation Envoyé par ohnerom
    Tu peux aussi faire un split avec le . , tu aurras un tableau de string dont un élément contenant "v1"
    surtout contenant vx, c'est le x qu'il veut récupérer, à savoir la version
    Il lui suffit de faire ensuite un ou deux tests pour trouver son string dans le tableau de string
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  5. #5
    Membre habitué
    Inscrit en
    Mai 2003
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 103
    Points : 128
    Points
    128
    Par défaut
    mais si tu veux la version d'une librairie , tu peux aussi utiliser ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            Package pkg = Package.getPackage("le.chemin.du.package.de.la.lib");
            if (pkg != null && pkg.getImplementationVersion() != null) {
                String version = pkg.getImplementationVersion().trim();
    C'est le numero de version qui est dans le manifest que tu recois.
    Et je crois qu'il faut que le package que tu "envoies" doit contenir au moins une classe.

  6. #6
    Inactif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 92
    Points : 55
    Points
    55
    Par défaut oups....
    ca a l'air compliqué, desolé, je n'ai jamais fait ce genre de truc.. j'essaie çà :

    String version =myMessage.getClass().getPackage().getName();

    String[] versionFinale = version.split("//.//.messages");

  7. #7
    Inactif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 92
    Points : 55
    Points
    55
    Par défaut j'arrive pas à le faire
    j'arrive pas utilsier à croire que c'est super simple mais pas moyen.

  8. #8
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
            String version = "fr.hello.essai.ddd.x ls.v1.messages";
            String[] strings = version.split("\\.");
            String versionFinale = null;
            for(int i = 0; i<strings.length; i++)
                if(strings[i].startsWith("v"))
                    versionFinale = strings[i].substring(1);

  9. #9
    Membre émérite
    Avatar de mavina
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2004
    Messages
    1 812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Chine

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2004
    Messages : 1 812
    Points : 2 411
    Points
    2 411
    Par défaut
    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
    String version =myMessage.getClass().getPackage().getName();
     
    String[] versionFinale = version.split("//.//.messages");
     
    string temp;
    for(int i=0;i<versionFinale.length;i++)
    {
      if(versionFinale[i].startsWith("v"))
       {
          try
          {
            int n=Integer.parseInt(versionFinale[i].substring(1));
            temp=versionFinale[i];
            break;
          }catch(Exception e){}
       }
    }
    essaie ca, j'ai pas testé mais ca devrait marcher :\

    mavina
    Développeur Java / Flex à Shanghai, Chine
    mes publications
    Mon dernier tutoriel : Messages Quit IRC : explications

    La rubrique IRC recrute des redacteurs : contactez moi

    Ce flim n'est pas un flim sur le cyclimse. Merci de votre compréhension.[/SIZE]

  10. #10
    Membre actif Avatar de @ldehan
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    215
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 215
    Points : 278
    Points
    278
    Par défaut
    l'autre solution serait les expressions régulières mais je suis vraiment mauvais dans le domaine... il y a pas un spécialiste regex dans le coin

  11. #11
    Inactif
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2005
    Messages : 92
    Points : 55
    Points
    55
    Par défaut merci
    merci merci merci infiniment.

    je comprends mieux la demarche de ces fonctions.

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

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  3. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  4. Réponses: 2
    Dernier message: 18/12/2006, 19h04

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