Rajout d'une case dans un tableau de String - Java - Programmation
Marsh Posté le 16-04-2011 à 17:21:57
Utilises la balise code et indente ton code, la c'est illisible.
Ensuite, ca ne marches pas, c'est à dire?
Marsh Posté le 16-04-2011 à 19:52:04
Utilises les balises code, comme ceci:
Code :
|
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 ...
Marsh Posté le 16-04-2011 à 16:02:59
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