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

Talend Discussion :

Split / ArrayIndexOutOfBoundsException


Sujet :

Talend

  1. #1
    Membre régulier
    Profil pro
    Responsable informatique
    Inscrit en
    Juillet 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 142
    Points : 91
    Points
    91
    Par défaut Split / ArrayIndexOutOfBoundsException
    Bonjour,


    J'ai un fichier csv :
    COL1|COL2|COL3
    avant|99999;88888;77777|après

    Je souhaite séparer la colonne 2 en fonction du caractère ;

    J'ai donc fait dans un JavRow :

    output_row.COL1 = input_row.COL1;
    output_row.COL2_1 = StringHandling.TRIM(input_row.COL2).split(";")[0];
    output_row.COL2_2 = StringHandling.TRIM(input_row.COL2).split(";")[1];
    output_row.COL2_3 = StringHandling.TRIM(input_row.COL2).split(";")[2];
    output_row.COL3 = input_row.COL3;

    Mais j'ai cette erreur : java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1

    Si je laisse que output_row.COL2_1 = StringHandling.TRIM(input_row.COL2).split(";")[0]; ça fonctionne, je ne comprends pas car j'ai bien 3 éléments et si je test avec StringHandling.TRIM(input_row.COL2).split(";").length, ça me retourne bien 3... ??

    Si vous avez une idée !!
    Merci pour votre aide.

  2. #2
    Membre expérimenté Avatar de supergeoffrey
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2010
    Messages
    802
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2010
    Messages : 802
    Points : 1 698
    Points
    1 698
    Par défaut
    Très louche ce que tu dis !


    Tu dis que le format de ton fichier est

    Citation Envoyé par canabral
    COL1|COL2|COL3
    avant|99999;88888;77777|après
    Vu l'erreur je vois 3 types d'erreur


    1. tu n'ignores pas ton header. "COL2".split(";")[1]// Index 1 out of bounds for length 1
    2. tu as des lignes du genre avant|154|après dans ce cas tu peux ajouter une méthode dans une routine pour récupérer l'index de façon seine ou je faire dans ton tJavaRow
      Code java : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      public static <T> T indexOf(T[] array, int index) {
        return array != null && index >= 0  &&  index < array.length ? array[index] : null;
      }
    3. tu as des lignes du genre avant|;154;|après dans ce cas il faut utiliser String.split(";", -1) pour garder les vides

Discussions similaires

  1. [langage] utilisation de 'split'
    Par mimilou dans le forum Langage
    Réponses: 9
    Dernier message: 24/02/2004, 13h28
  2. [LG]Split qui marche pas
    Par macluvitch dans le forum Langage
    Réponses: 3
    Dernier message: 30/11/2003, 18h19
  3. Réponses: 3
    Dernier message: 08/09/2003, 15h06
  4. Split et calcul de ligne du tableau
    Par La_picolle dans le forum ASP
    Réponses: 6
    Dernier message: 27/08/2003, 15h58
  5. split en xsl
    Par alexandre54 dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 17/03/2003, 10h08

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