Chaîne de caractères et sa position

Fermé
aminaxy Messages postés 148 Date d'inscription jeudi 1 septembre 2011 Statut Membre Dernière intervention 18 août 2016 - 19 mars 2012 à 22:33
aminaxy Messages postés 148 Date d'inscription jeudi 1 septembre 2011 Statut Membre Dernière intervention 18 août 2016 - 20 mars 2012 à 14:11
Bonjour,

je doit afficher dans un tableau ,c'est à dire dans chaque ligne les caractéres A,B,C,j'ai commancer à les mettresnt tous dans un tableau st,puis je les dévisés,en utilisant la méthode split

voici la chaine de caractéres:
AAAAAAAAAAAAAAAAAAAAAAAAA.1 = carac: "A"
AAAAAAAAAAAAAAAAAAAAAAAAA.4 = carac: "B"
AAAAAAAAAAAAAAAAAAAAAAAAA.328 = carac :"C"

voici mon code:
for(int i=0;i<données.length;i++){
  String[] st =resultat.split("AAAAAAAAAAAAAAAAAAAAAAAAA."); //j'ai pris ce délimiteur puisque c'est le commun entre les 3 chaines
               données[i][0]=  st[i] ; //puis j'ai mais dan mon tableau données
                    }

lorsque je compile j'obtient toutes le reste de chaîne(aprés ce que j'ai délimité),or je veut que seulement les caractères A,B,C s'affichent dans les lignes de mon tableau,alors j'ai pensé d'utiliser un autre split et mettre le résultat dans un autre tableau puis l'affiche à partir de ce tableau,or toujours j'ai des problèmes d'exception et je ne sait pas quoi faire,existe t'il une méthode en java qui permet de sélectionner une chaîne à partir de sa position,comme la méthode substring() mais avec les tableaux de chaines de carcatéres et merci pour tout aide
A voir également:

3 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
19 mars 2012 à 22:55
Ici tu peux te servir d'une combinaison de find et de substring, ça devrait être assez direct.
0
aminaxy Messages postés 148 Date d'inscription jeudi 1 septembre 2011 Statut Membre Dernière intervention 18 août 2016 1
20 mars 2012 à 00:27
merci KX pour ta réponse,j'ai essayé d'utiliser la méthode substring avec le tableau des String st et je l'ai mit le résutat de la séléction dans un String st1,or ce que je trouve à la compilation des erreurs d'exception,j'ai fait comme suit

String st1= st[i].substring(la position d'où je commance la sélection,st.length-1);

données[i][0]= st1[i] ;

mon premier code est fonctionnel,mais je veut comment je peut séléctionner la position de la chaine afin par exemple d'afficher seulement le caractére" A" dans la premiére ligne de mon tableau,et "B" dans la 2éme ligne,et "C" dans la 3éme
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
Modifié par KX le 20/03/2012 à 08:26
Avec indexOf ! Ici tu ne te sers que de substring, pourtant j'avais bien mis les deux (je m'étais trompé sur le nom, mais le lien était le bon...)
0
aminaxy Messages postés 148 Date d'inscription jeudi 1 septembre 2011 Statut Membre Dernière intervention 18 août 2016 1
20 mars 2012 à 12:34
bonjour KX,

j'ai utilisé les 2 méthodes indexOf(String str),et substring(index de début),mais ce que je trouve à la compilation des erreurs d'exeption

java.lang.StringIndexOutOfBoundsException: String index out of range: -1

pourtant,voici ce que j'ai fait:

String[] st = resultat.split("AAAAAAAAAAAAAAAAAAAAAAAAA.");
int x =st[i].indexOf(" = carac:"); //puisque je veut que seulement le caractére A s'affiche dans la ligne 1 de mon tableau données

données[i][0]= st[i].substring(x,st.length-1) ; //puis j'ai commencer à séparer et de séléctionner ce qui est aprés "=carac:",

lorsque je mit System.out.pritln(x);
voila ce que j'ai eu :

run:
-1
1
1
3

je ne sait pas où est ma faute,je pense que c'est logique que j'ai fait,et merci KX pour tout aide
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
20 mars 2012 à 12:45
lorsque tu fais int x= indexOf(" = carac:"); alors x va valoir -1 lorsque " = carac:" n'aura pas été trouvé, ce qui est par exemple le cas pour C, vu qu'il y a un espace avant les deux points.
Il faut donc vérifier que x soit différent de -1 avant de la balancer tel quel dans le substring !
De plus x vaudra l'indice du début de la chaîne alors que tu cherches l'indice de fin, il faudra donc décaler d'autant d'indices que tu as de caractères an paramètre d'indexOf...

De plus ton st.length-1 est plutôt violent, il vaudrait mieux réutiliser indexOf pour déterminer l'indice de fin. Ici ce que tu cherches est encadré par deux guillemets, donc fait ton index sur les guillemets !
0
aminaxy Messages postés 148 Date d'inscription jeudi 1 septembre 2011 Statut Membre Dernière intervention 18 août 2016 1
20 mars 2012 à 14:11
ok merci KX je vais essaer :)
0