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

  FORUM HardWare.fr
  Programmation
  Java

  Rajout d'une case dans un tableau de String

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Rajout d'une case dans un tableau de String

n°2070439
samjda
Posté le 16-04-2011 à 16:02:59  profilanswer
 

Bonjour,  
j'essaye de faire un programme qui a pour but d’insérer des crochets dans un chaîne de caractère  du type "pomme((carotte(radis)), chocolat(caramel))" je souhaite insérer un crochet ouvrant après la dernière parenthèse ouvrante et un crochet fermant avant la première parenthèse fermante, et cela pour chaque sous chaîne (avant la virgule) ce qui donnerai  
                             "pomme((carotte([radis])), chocolat([caramel]))"
 
Pour cela j'ai écris ce petit programme en java, mais cela ne marche pas, aidez moi a trouver le problème merci
 
lors de l’exécution de ce programme j'ai ceci comme erreur :  
 
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at me.Main.main(Main.java:29)
 
Voici le code:
 
public class Main {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        String input= "pomme((carotte(radis)), chocolat(caramel))";
        String[] sentences = input.split("," );
         
   
 
   for (int i = 0; i < sentences.length; i++) {
    int l=0;
    char[] sentenceTab = sentences[i].toCharArray();
                                int leng=sentences.length+4;
                                 
                                char[] sentenceTab1 = sentences[leng].toCharArray();
 
    char c1=' ';
 
               int k;
    for(k =0; k < sentenceTab.length ; k++){
                                    for (l=0; l<sentenceTab1.length; l++)
                                      { sentenceTab1[l]=sentenceTab[k];
                                    }}
                                for (l=0; l<sentenceTab1.length+2; l++)
                                {   c1=sentenceTab[l];
                                        if (c1==')'){
                                            int v = l ;
                                            for (l=sentenceTab1.length+2; l>0; l--)
                                            {   sentenceTab1[l]=sentenceTab1[l-1];
                                                }
                                            sentenceTab1[v]=']';
 
                                }
                                }
                                for (l=sentenceTab1.length+2; l>0; l--)
                                {char c = sentenceTab[l-1];
                                 if (c== '('){
                                     int j=c;
                                     for (int v=sentenceTab1.length+2; v>0; v--)
                                     { sentenceTab1[v]=sentenceTab1[v-1];
                                     }
                                     sentenceTab1[j+1]='[';
                                 }
                                 
                                 }
                                    sentences[i] = String.copyValueOf(sentenceTab1);
 
                                }
                        input = "";
   for (int i = 0; i < sentences.length-1; i++) {
    input += sentences[i]+",";
                        }
                         
                        input+=sentences[sentences.length-1];
                        System.out.println(input);
    }
}


Message édité par samjda le 16-04-2011 à 19:36:59
mood
Publicité
Posté le 16-04-2011 à 16:02:59  profilanswer
 

n°2070443
mr simon
Posté le 16-04-2011 à 17:21:57  profilanswer
 

Utilises la balise code et indente ton code, la c'est illisible.
 
Ensuite, ca ne marches pas,  c'est à dire?

n°2070448
samjda
Posté le 16-04-2011 à 18:11:55  profilanswer
 

Désolée, voilà j'ai rectifiée...

n°2070454
mr simon
Posté le 16-04-2011 à 19:52:04  profilanswer
 

Utilises les balises code, comme ceci:

Code :
  1. int leng = sentences.length + 4;
  2. char[] sentenceTab1 = sentences[leng].toCharArray();


 
Ici ton entier leng est egal à la taille de ton tableau + 4, c'est donc normal que tu aies une Out of Bound exception ... Honnetement je ne comprends pas ce que tu veux faire ...


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

  Rajout d'une case dans un tableau de String

 

Sujets relatifs
String to floatVBA Excel - graphique données sources = tableau
Traitement d'une variable tableauProbleme StringTokenizer et tableau
Alimentation d'une variable avec données d'un tableau[VHDL] Question concernant les case avec des if
Afficher données mysql dans un tableau[Android] Afficer le contenu d'un tableau
[JS] Jquery UI Drag&Drop de cellules dans un tableauTableau à double entrées et séparation des couches
Plus de sujets relatifs à : Rajout d'une case dans un tableau de String


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