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

Développement de jobs Discussion :

Couper une chaîne aux espaces


Sujet :

Développement de jobs

  1. #1
    Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2010
    Messages : 135
    Points : 65
    Points
    65
    Par défaut Couper une chaîne aux espaces
    Bonjour,

    J'ai une colonne qui contient Nom et prénom séparés par un espace.
    Je souhaiterais dans ma table cible stocker le Nom dans une colonne et le Prénom dans une autre.
    Existe--t-il une fonction dans Talend qui prend la première partie d'une chaîne (ou la dernière partie) et s'arrête à l'espace ?

    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    salut,

    Tu peux faire une routine (code java) puis l'utiliser dans un tMap par exemple.
    Dans ta routine tu peux te servir de la fonction java split de la classe string.
    Tu fait une fonction qui te renvoi soit le nom ou le prenom selon un parametre

  3. #3
    Membre du Club
    Femme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2010
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Avril 2010
    Messages : 135
    Points : 65
    Points
    65
    Par défaut

    Je veux bien mais je n'ai jamais créé des routines en codant en Java
    J'ai trouvé ça en faisant une rapide recherche :

    String maChaine = row2.Nom;
    java.util.StringTokenizer tokenizer = new java.util.StringTokenizer(maChaine, " ");

    while ( tokenizer.hasMoreTokens() ) {
    System.out.println(tokenizer.nextToken());
    }

    Mais je ne sais pas comment l'intégrer ? dois-je ajouter des bibliothèques ... ?
    Java c'est pas mon délire ...

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Points : 17
    Points
    17
    Par défaut
    déjà il faut créer une routine java dans l'onglet référentiel sous la rubrique code. mais si tu n'a jamais fait de java cela ne va pas être évident !!!
    voila une routine NON TESTER c'est pour te donner une idée.
    /**
    * splitNomPrenom: renvoi le nom ou le prenom
    *
    *
    * {talendTypes} monType
    *
    * {Category} User Defined
    *
    * {param} string(NomPrenom) input: Le champ nom + prenom.
    * {param} int(code) input: Code à 0 renvoi le nom ou code a 1 renvoi le prenom.
    *
    * {example} splitNomPrenom("Nom prenom", 1) # Renvoi "prenom"
    * .
    */
    public static string splitNomPrenom(String nomPrenom, int code) {
    String chaine[] = nomPrenom.split(" "); // on split sur l'espace
    if(code == 0){
    return chaine [0]; // renvoi nom
    }else{
    return chaine[1]; // renvoi prenom
    }
    }

    ensuite il te reste a l'utiliser dans un tMap avec l'editeur d'expression dans le champ cible (le petit bouton avec "...") ou tu devrait voir apparaitre la fonction que tu a coder.

  5. #5
    Membre expérimenté Avatar de Benoit_Durand
    Profil pro
    Consultant en Business Intelligence Freelance
    Inscrit en
    Mars 2005
    Messages
    861
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence Freelance

    Informations forums :
    Inscription : Mars 2005
    Messages : 861
    Points : 1 308
    Points
    1 308
    Par défaut
    Ce n'est pas le rôle du composant tExtractRegexFields de faire ça (j'ai la version 4 de Talend). Il me semblait qu'il portait un nom différent dans les version précédentes.

    Sinon en java pur il doit être possible de le faire en combinant indexOf() et substring(). http://download.oracle.com/javase/1.5.0/docs/api/

Discussions similaires

  1. [RegEx] Couper une chaîne à partir d'une ponctuation
    Par Phenol dans le forum Langage
    Réponses: 2
    Dernier message: 22/07/2010, 11h01
  2. [RegEx] pb : couper une chaîne
    Par mzt.insat dans le forum Langage
    Réponses: 1
    Dernier message: 22/02/2007, 18h14
  3. Réponses: 2
    Dernier message: 22/04/2006, 18h05
  4. couper une chaine sans espaces
    Par djibril38 dans le forum Langage
    Réponses: 4
    Dernier message: 14/03/2006, 14h43
  5. Couper une chaîne
    Par MYster dans le forum Langage
    Réponses: 8
    Dernier message: 19/11/2005, 22h43

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