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
    795
    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 : 795
    Points : 1 685
    Points
    1 685
    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
    Pensez à marquer vos tickets comme résolus.
    Pensez aussi aux pour les réponses pertinantes

    Quand une discution est résolue depuis un moment pour revenir dessus, il est mieux d'en crée une nouvelle avec un lien vers l'autre car :
    • Elle sera en haut du forum, elle sera donc plus visible
    • Une discussion résolue, on ne passe pas dessus pour aider, on passe dessus si on a le même problème
    • Tu demandes surement à tes clients de faire le même

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