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 :

erreur procédure CharAt()


Sujet :

avec Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 53
    Points : 29
    Points
    29
    Par défaut erreur procédure CharAt()
    Bonjour, j'ai implémenté une méthode de recherche d'une sous-chaîne dans une chaîne (méthode de Knuth Morris Pratt), le code à l'air bon, il n'y a rien à signaler mais lors de l'exécution la méthode charat ne fonctionne pas. Voici le code de la méthode implémentée (initialisation d'un tableau):

    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
    23
    24
    25
    public void Init_tab(){
            int i = 0;
            int j = -1 ;
            char c='\0';
     
            tab_motif[0]=j;
            while((motif.charAt(i)) != ('\0')){
                if(motif.charAt(i)==c){
                    tab_motif[i+1]=j+1;
                    i++;
                    j++;
                }
                else{
                    if(j>0){
                        j=tab_motif[j];                   
                    }
                    else{
                        tab_motif[i+1]=0;
                        i++;
                        j=0;
                    }
                    c=motif.charAt(j);
                }
            }  
    }
    le message d'erreur est :
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 7
    D'ou vient cette erreur et comment faire pour faire fonctionner le programme?
    Merci d'avance pour vos réponses.

  2. #2
    Membre éprouvé Avatar de Jidefix
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    742
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 742
    Points : 1 154
    Points
    1 154
    Par défaut
    1) utilise les balises [ code] et [/ code] (sans les espaces), c'est beaucoup plus lisible

    2) merci de poster la ligne correspondant à l'exception dans le fichier.

    En effet ton exception est que tu demandes le 8e caractère de la chaine motif, et que celle-ci n'en fait visiblement que 7, le probleme c'est qu'on ne sait pas sur quel charAt tu te trouves.
    Je te dirai si tu utilises eclipse de faire tourner le programme en mode DEBUG pour le suivre en pas à pas.
    Sinon ben met des System.out.println(...) pour connaitre les valeurs de i et j à chaque itération. Il y a surement une embrouille de ce coté la
    Veuillez agréer nos sentiments les plus distingués. Soyez assurés de notre entière collaboration, bien à vous pour toujours et à jamais dans l'unique but de servir l'espérance de votre satisfaction, dis bonjour à ton père et à ta mère, bonne pétanque, mets ton écharpe fais froid dehors.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 53
    Points : 29
    Points
    29
    Par défaut
    Merci pour le conseil. J'ai essayé de mettre une boucle while afin de ne pas rentrer dans les autres boucles lorsque i est supérieur à 7 mais cela ne marche pas. Je suis un peu perdue.

  4. #4
    Membre habitué Avatar de jean.2edi
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2008
    Messages : 106
    Points : 131
    Points
    131
    Par défaut
    Pourquoi recoder une méthode présente ???

    Ton algorithme ne viendrait-il pas du C : tu recherches le caractère nul pour t'arrêter ce qui correspond à une "chaîne" C et non pas Java. Pour t'arrêter en Java le test serait plutôt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(i < motif.length())

Discussions similaires

  1. erreur procédure stockée
    Par ChronosXIII dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 16/03/2009, 10h31
  2. Réponses: 0
    Dernier message: 04/02/2009, 12h26
  3. Erreur Procédure Stockée et ASP
    Par dedein84 dans le forum ASP
    Réponses: 1
    Dernier message: 08/08/2008, 14h21
  4. Erreur procédure stockée : curseur read only
    Par Oluha dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 08/11/2005, 09h50
  5. erreur Procédure stockée
    Par Invité dans le forum SQL
    Réponses: 5
    Dernier message: 17/12/2004, 14h09

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