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

avec Java Discussion :

String index out of range: -1


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 73
    Points : 39
    Points
    39
    Par défaut String index out of range: -1
    Bonjour à tous,

    j'ai un fichier txt comme suit:
    12/22 14:49:46 5451 40008
    12/22 14:50:46 1114 1149
    12/22 14:51:46 1086 3163
    12/22 14:52:46 763 1168
    Et j'aimerais obtenir chaque partie séparée par "tab".J'ai fais comme suit:
    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
    18
    19
    20
    21
    22
    while (fluxEntree.ready()) {
    				temp = new DataModel();
    				ligne = fluxEntree.readLine();
     
    				indiceSeparateur = ligne.indexOf("\t");
    				temp.date = new String(ligne.substring(0, indiceSeparateur));
    				tempindicesep = indiceSeparateur;
    				indiceSeparateur = ligne.indexOf("\t");
    				temp.time = new String(ligne.substring(tempindicesep + 1,
    						indiceSeparateur));
     
    				int templastindice = indiceSeparateur;
    				int lastindiceSep = ligne.lastIndexOf("\t");
    				temp.debit = new String(ligne.substring(templastindice + 1,
    						lastindiceSep));
    				temp.debit2 = new String(ligne.substring(lastindiceSep + 1, ligne.length()));
     
    				ret.add(temp);
    				System.out.println("temp >> "+ret.get(iterator).getDebit());
    				iterator ++;
     
    			}
    et que je lance le programme, j'obtiens l'erreur suivante:
    org.apache.jasper.JasperException: java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:491)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:419)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

    cause mère

    java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    java.lang.String.substring(Unknown Source)
    com.telma.reporting.debit.Utilnew.readFileContent(Utilnew.java:93)
    org.apache.jsp.Newjsp_jsp._jspService(Newjsp_jsp.java:86)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

    quelqu'un pourrait-il m'aider svp? je n'ai aucune idée comment je vais le faire.
    Meilleures salutations.

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Tu passes a Substring un index négatif. Substring il n'aime pas du tout d'ou l'exception.

    L'index négatif provient certainement de indexOf que tu ne vérifies pas s'il est négatif (car il retourne -1 si il ne trouve pas l'occurrence demandée).

    Lance le code au debuggeur et regarde ce qu'il se passe (ou meme des system.out pour debugger) tu devrais vite comprendre.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2013
    Messages : 73
    Points : 39
    Points
    39
    Par défaut
    merci wax78, le problème était dans indexof qui se suit 2 fois, j'ai utilisé indexof("",9) et ça marche.
    bon je vais noter ça comme résolu, merci encore

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/01/2010, 18h44
  2. substring exception String index out of range: -1)
    Par tagada30 dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 30/09/2008, 21h39
  3. IndexError: string index out of range
    Par nina08 dans le forum Général Python
    Réponses: 2
    Dernier message: 04/08/2008, 09h27
  4. String index out of range
    Par *alexandre* dans le forum Langage
    Réponses: 3
    Dernier message: 08/01/2008, 04h19
  5. probleme de relogin: String index out of range: 0
    Par bbany dans le forum Wildfly/JBoss
    Réponses: 3
    Dernier message: 07/09/2007, 17h04

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