Belette32
Messages postés57Date d'inscriptionmercredi 14 septembre 2005StatutMembreDernière intervention22 novembre 2007 24 oct. 2005 à 15:01
C simple, t'as deux solutions:
1° : tu decompose le string lettre par lettre grace a l'option "String.charAt(int)", ou string designe ton texte et un int qui designe la nieme lettre de ta phrase.
2° : tu te sers de la class streamtokenizer. cette class consiste a decouper une phrase en une serie de mots(tres utile si tu connait pas la taille exacte de la phrase). Puis tu decompose chacun de tes mots en parametre. ex : pour 14:24:16: , ce sera ton 4°mot ke tu decompose(grace a charAt) pour obtenir heure=14, etc.. .
Tu trouvera les commandes relatives aux classes sur le site de sun.
Bonne chance.
Belette32
Si t arrive pas, laisse moi un message, j'essairais de t'aider.
Belette32
Messages postés57Date d'inscriptionmercredi 14 septembre 2005StatutMembreDernière intervention22 novembre 2007 26 oct. 2005 à 10:14
slt dans ta boucle while , tu defini un string et c tres mauvais. Il faut que tu cree ton string juste avant la boucle.
Pour le test j, c normal car ton j n'apparait pas dans la boucle, donc la variable j ne bouge pas. De plus, il faut ke tu initailise ta variable si tu veux t'en servir.
Je me pencherais plus longtemps sur la question cet aprem car je suis au boulot. Si tu veux, t'as ka me copier ton code complet et je te dirais ce k'il faut modifier.
sonson_rt
Messages postés3Date d'inscriptionjeudi 15 septembre 2005StatutMembreDernière intervention15 novembre 2005 10 nov. 2005 à 11:04
j'ai une chaine de caractères que je veux découper en plusieurs mots et la stocker dans un tableau de String.
Voici la chaine à découper:
<6> "2005-11-10 10:30:18","529955969","172.28.10.242","Packet filter","Notification","New connection","Allow","TCP","172.28.16.2","217.146.176.102","21788","80","4950",,,,,,"NIC #2",,,,,,,,,,,,,,"FW_INT2",,,,,,,,,,,,,,"FW_EXT2",,"0", was reset by client",
la méthode qui fait le découpage est la suivante
void decoupage(String ligne){
String [] param =new String[100];
StringTokenizer mot = new StringTokenizer(ligne," " "); //je teste sur le delimiteur "
int j=0;
String s=new String();
while (mot.hasMoreTokens())
{
s =mot.nextToken();
param[j]=s;
if ((param[j] == ","))
{
s =mot.nextToken();
param[j]=s;
if ((param[j] == ","))
param[j]="vide";
}
System.out.println("param["+j+"]= "+ param[j]);
j++; } }
je ne veux pas stocker les virgules dans le tableau et lorsque je reçois plusieurs virgules à la file je met la chaine vide ds le tableau
mon pb est que la boucle en rouge ne marche pas et le pg stocke les virgules dans le tableau
Belette32
Messages postés57Date d'inscriptionmercredi 14 septembre 2005StatutMembreDernière intervention22 novembre 2007 18 nov. 2005 à 11:14
slt. j'ai un gros probleme avec ta chaine. Elle est tres bizarre. Elle ne peut pas rentrer dans une string tel qu'elle est. Donne moi plutot ce que contient le string ligne si tu veux plus d'aide. En theorie, tu ne devrais pas avoir autant de " " .
Si t'as pas besoin d'ecrire vide quand il y a deux virgule cote a cote, t'as qu'a modifier ton tokenizer:
StringTokenizer mot = new StringTokenizer(ligne," "+" ",");
Belette32
PS : pense a m'envoye exactement ce que contient ta ligne.