Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1322 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Exception in thread "main".java.lang.StringIndexOutOfBoundsException

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Exception in thread "main".java.lang.StringIndexOutOfBoundsException

n°1405730
Didine95
Posté le 12-07-2006 à 16:38:57  profilanswer
 

:hello: Bonjour,
Je travaille sous NetBeans et j'ai écrit un programme qui se compile sans problème mais lorsque je l'exécute, il m'annonce ceci :
 
Exception in thread "main" java.lang.StringOutOfBounds Exception: String index out of range: 0
 
Sauriez vous pas hasard à quoi cette erreur peut correspondre?
Je vous remercie d'avance pour votre aide !! ;)

Message cité 1 fois
Message édité par Didine95 le 12-07-2006 à 16:39:24
mood
Publicité
Posté le 12-07-2006 à 16:38:57  profilanswer
 

n°1405733
_darkalt3_
Proctopathe
Posté le 12-07-2006 à 16:42:47  profilanswer
 

à un index qui déborde lors d'un parcours de chaine ?

n°1405739
Didine95
Posté le 12-07-2006 à 16:50:22  profilanswer
 

en fait j'effectue plusieurs traitements de chaines de caractères  :)  
et tout le début du traitement fonctionne correctement jusqu'au moment où j'ai cette erreur qui bloque sur une chaine de caractères
mais elle est semblable aux autres chaines précédentes donc j'ai du mal à cerner le réel problème rencontré lors de l'exécution de mon programme  :??:


Message édité par Didine95 le 12-07-2006 à 16:52:16
n°1405741
_darkalt3_
Proctopathe
Posté le 12-07-2006 à 16:51:33  profilanswer
 

Vérifie sa taille avant et compare ton index avec sa taille par exemple.

n°1405744
Didine95
Posté le 12-07-2006 à 16:56:15  profilanswer
 

_darkalt3_ a écrit :

Vérifie sa taille avant


ma chaine de caractères est toujours de longueur identique (80 caractères maximum)
 

_darkalt3_ a écrit :

compare ton index avec sa taille


quand tu parles de l'index: il est caracterisé par quoi un caractère de la chaine ou bien le buffer dans lequel est stocké la chaine?


Message édité par Didine95 le 12-07-2006 à 16:57:26
n°1405747
_darkalt3_
Proctopathe
Posté le 12-07-2006 à 16:57:13  profilanswer
 

tu peux poster le code où ca déconne ?

n°1405752
Didine95
Posté le 12-07-2006 à 17:00:11  profilanswer
 

ça risque d'être un peu long mais je vais essayé

n°1405755
_darkalt3_
Proctopathe
Posté le 12-07-2006 à 17:04:19  profilanswer
 

Sinon ce genre d'erreur peut etre provoquée quand tu parcours des strings et que tu débordes, ou que tu veux copier des strings dans des strings trop petites (je crois, ca fait longtemps que j'ai pas fait de java), ce genre de choses.

n°1405756
Didine95
Posté le 12-07-2006 à 17:06:37  profilanswer
 

Code :
  1. package interrégion;
  2. import java.io.*;
  3. public class Application {
  4.         public void Application(String région,BufferedReader in, BufferedWriter out, BufferedWriter out1, BufferedWriter out2) {             
  5.        try{   
  6.             //création des variables
  7.             String ligne_in; //Ligne du fichier texte d'entrée
  8.             String ligne_out; //Ligne du fichier texte de sortie
  9.             String TI; //Trame de la TI récupérée pour le fichier de sortie
  10.             String DEST;
  11.             int[][] dest=new int[4][4];
  12.             try{
  13.                 while((ligne_in=in.readLine())!=null){
  14.                     //TI type TS/TC/PS/TF/TL/TN
  15.                     if(((ligne_in.charAt(0)=='T')&&(ligne_in.charAt(1)=='S'))||((ligne_in.charAt(0)=='T')&&(ligne_in.charAt(1)=='C'))||((ligne_in.charAt(0)=='P')&&(ligne_in.charAt(1)=='S'))||((ligne_in.charAt(0)=='T')&&(ligne_in.charAt(1)=='F'))||((ligne_in.charAt(0)=='T')&&(ligne_in.charAt(1)=='L'))||((ligne_in.charAt(0)=='T')&&(ligne_in.charAt(1)=='N'))){                     
  16.                         TrameTS tramets=new TrameTS();
  17.                         TI=tramets.TrameTS(ligne_in,région);
  18.                         Destination destinataire=new Destination();
  19.                         dest=destinataire.Destination(ligne_in,ligne_in.substring(0,2));
  20.                         if(dest[0][1]==1){...}
  21. //...Suite du programme


 
le message d'erreur s'affiche pour la ligne du 'if' de la boucle 'while'


Message édité par Didine95 le 12-07-2006 à 17:07:48
n°1405759
Didine95
Posté le 12-07-2006 à 17:10:54  profilanswer
 

ça risque d'être un peu compliqué à résoudre  
je vais faire d'autres recherches demain
merci beaucoup pour cette petite aide  :)

mood
Publicité
Posté le 12-07-2006 à 17:10:54  profilanswer
 

n°1405780
lamino
Posté le 12-07-2006 à 17:31:37  profilanswer
 

Et si tu affichais (System.out.println) ce que ligne_in vaut, en particulier pour la premiere iteration?
Peut être qu'elle ne contient qu'un seul charactere (ou même une ligne vide), dans ce cas si tu fais charAt(1), c'est normal que t'auras une erreur de débordement...

n°1406091
Didine95
Posté le 13-07-2006 à 08:50:46  profilanswer
 

je vais vérifier mais mes lignes ne sont normalement jamais vides!

n°1406111
_darkalt3_
Proctopathe
Posté le 13-07-2006 à 09:16:29  profilanswer
 

try/catch autour de tes ligne_in.charAt(n)

n°1406125
Bidem
Posté le 13-07-2006 à 09:31:21  profilanswer
 

Didine95 a écrit :

je vais vérifier mais mes lignes ne sont normalement jamais vides!


Citation :

String index out of range: 0


 
Si, là tu as une ligne vide.
Moi, je vote et je dis que c'est la dernière ligne qui merde.

Code :
  1. while (in = ...) {
  2.   if (in.equals("" )) {
  3.     // on passe à l'itération suivante
  4.     continue;
  5.   }
  6. }


 

Citation :

try/catch autour de tes ligne_in.charAt(n)


[:vomi]
Ca serait vraiment crado d'utiliser la gestion d'exception pour combler une lacune dans l'algo ...


Message édité par Bidem le 13-07-2006 à 09:31:40
n°1406142
_darkalt3_
Proctopathe
Posté le 13-07-2006 à 09:58:14  profilanswer
 

Ca lui met en évidence l'endroit où se lève l'exception [:spamafote]
Chuis cependant d'accord pour que ca n'aparaisse pas dans l'algo final

n°1406274
Didine95
Posté le 13-07-2006 à 13:08:51  profilanswer
 

effectivement j'avais une ligne vide juste avant la fin du fichier

n°1406277
Didine95
Posté le 13-07-2006 à 13:14:45  profilanswer
 

néanmoins j'ai un problème similaire mais cette fois ci c'est pour un seul fichier et c'est devenu:
String index out of range : 80
 
Cela signifie que c'est la fin de ma ligne qui n'est pas correcte??

n°1406281
zapan666
Tout est relatif
Posté le 13-07-2006 à 13:22:01  profilanswer
 

Didine95 a écrit :

:hello: Bonjour,
Je travaille sous NetBeans et j'ai écrit un programme qui se compile sans problème mais lorsque je l'exécute, il m'annonce ceci :
 
Exception in thread "main" java.lang.StringOutOfBounds Exception: String index out of range: 0
 
Sauriez vous pas hasard à quoi cette erreur peut correspondre?
Je vous remercie d'avance pour votre aide !! ;)


 

Didine95 a écrit :

néanmoins j'ai un problème similaire mais cette fois ci c'est pour un seul fichier et c'est devenu:
String index out of range : 80
 
Cela signifie que c'est la fin de ma ligne qui n'est pas correcte??


Utilise le debuggeur de NetBeans.
Tu met un point d'arret (BreakPoint) et tu lance en mode debug, Tu vera ainsi ce que contiens ta chaine avant que ca plante.
 
 


---------------
my flick r - Just Tab it !
n°1406283
Didine95
Posté le 13-07-2006 à 13:24:33  profilanswer
 

zapan666 a écrit :

Utilise le debuggeur de NetBeans.
Tu met un point d'arret (BreakPoint) et tu lance en mode debug, Tu vera ainsi ce que contiens ta chaine avant que ca plante.


entendu je le fais  :)  

n°1406657
Didine95
Posté le 13-07-2006 à 20:14:33  profilanswer
 

bon ben j'ai résolu le problème  :wahoo:  
c t juste que la ligne qui engendrait l'erreur n'était pas écrite correctement  ;)  


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Exception in thread "main".java.lang.StringIndexOutOfBoundsException

 

Sujets relatifs
"Exception CSS" sur un lienUn intranet (portail, cms) en JAVA ? (Liferay - Jahia...)
API java pour du ftp[Résolu] Equivalent uft8_encode() en Java?
[java][jfreechart] présentation de la légendeArchitecture 3-tier, en Java, couche DAO
+50Gb of Ebooks (c++,c#,java,security,network...)Java et les tableaux (J’ai un gros-petit problème)
[Topic unique] JR (Java extension)Thread de son et menu d'une interface
Plus de sujets relatifs à : Exception in thread "main".java.lang.StringIndexOutOfBoundsException


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR