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

  FORUM HardWare.fr
  Programmation
  Java

  StringTokenizer, ou est le problem ? :/

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

StringTokenizer, ou est le problem ? :/

n°697973
xiluoc
un pc pour les unirs ....
Posté le 13-04-2004 à 09:13:24  profilanswer
 

:hello: ,
j ai le fichier suivant :

Code :
  1. james      12
  2. paul       2
  3. ginette    85
  4. roxxor     47


 
je veus recuperer le meileur score du fichier.
pour cela mon idee serait de prendre tout les chiffre , les mettre dans arraylist et en ressortir le plus grand.
 
la ou sa coince c est pour mettre les chiffres dans l ArrayList
voila ce que j ai fais :

Code :
  1. private ArrayList storeData;
  2. private ArrayList getScores() {
  3. scoresData = new ArrayList();
  4. BufferedReader  fileIn = null;
  5. try {
  6.  fileIn = new BufferedReader(new FileReader(file));
  7.  String delim = "\t";
  8.  String line;
  9.  while ((line= fileIn.readLine())!=null)
  10.  {
  11. StringTokenizer st = new StringTokenizer(line,  delim);           scoresData.add(Integer.parseInt(st.nextToken()));
  12.      
  13. //c est la que j ai une erreur  
  14. //The method add(int, Object) in the type ArrayList is not applicable  
  15. //for the arguments (int)
  16.  }
  17. }
  18. catch (IOException e)
  19. {
  20.   //blabla
  21. }
  22. return scoresData;
  23. }


comment pourai je faire  ??     [:dams86]  
merci.

mood
Publicité
Posté le 13-04-2004 à 09:13:24  profilanswer
 

n°697982
darklord
You're welcome
Posté le 13-04-2004 à 09:21:31  profilanswer
 

lire le message d'erreur? Tu essaies d'ajouter un entier (int) dans une arraylist.  
 
Enlève le Integer.parseInt

n°697984
nraynaud
lol
Posté le 13-04-2004 à 09:22:43  profilanswer
 

xiluoc a écrit :


//The method add(int, Object) in the type ArrayList is not applicable  
//for the arguments (int)


http://java.sun.com/j2se/1.4.2/doc [...] ng.String)
 
Il faut utiliser un Interger et pas un int quand tu veux un Object.


---------------
trainoo.com, c'est fini
n°697986
xiluoc
un pc pour les unirs ....
Posté le 13-04-2004 à 09:23:54  profilanswer
 

DarkLord a écrit :

lire le message d'erreur? Tu essaies d'ajouter un entier (int) dans une arraylist.  
 
Enlève le Integer.parseInt


ouai je viens de tester comme ca : scoresData.add(st.nextToken());
mais sa prend le premier morceau : le nom.
je voudrais seulement la 2ieme partie : le score.
 
scoresData.add(st.nextToken(st.nextToken()));
ne marche pas.

n°697989
Taz
bisounours-codeur
Posté le 13-04-2004 à 09:28:07  profilanswer
 

et bien tu lis la doc parceque java < 1.5 fait pas d'auto-boxing, faut donc que tu lui donne un Integer et pas un int

n°697994
xiluoc
un pc pour les unirs ....
Posté le 13-04-2004 à 09:32:26  profilanswer
 

oui j ai vu ca, ca marche maintenant.
hum je pense que si je fais

Code :
  1. if (hasMoreToken()==false) {
  2. scoresData.add(st.nextToken()); }


ca vas marcher =)
 
edit :
mais si jai une ligne de 15 token et que je veus le 8 ieme ? je serai donc obliger ne mettre un compteur ?
edit : arf j avais mis une annerie


Message édité par xiluoc le 13-04-2004 à 10:46:36
n°697998
alien_nan
Posté le 13-04-2004 à 09:35:10  profilanswer
 

xiluoc a écrit :


ouai je viens de tester comme ca : scoresData.add(st.nextToken());
mais sa prend le premier morceau : le nom.
je voudrais seulement la 2ieme partie : le score.
 
scoresData.add(st.nextToken(st.nextToken()));
ne marche pas.


 
pour avoir le deuxieme ...
st.nextToken(); scoresData.add(st.nextToken());

n°697999
darklord
You're welcome
Posté le 13-04-2004 à 09:35:58  profilanswer
 

essaie déjà de ne pas faire 30 choses différentes dans la meme instruction. Essaie de découper ce que tu dois faire en plusieurs méthodes.

n°700024
pascal34
one point !
Posté le 15-04-2004 à 11:59:38  profilanswer
 

darklord a écrit :

essaie déjà de ne pas faire 30 choses différentes dans la meme instruction. Essaie de découper ce que tu dois faire en plusieurs méthodes.


 
Moi je ferais une classe Parser qui :

  • analyse ton fichier  
  • renvoie une List (ArrayList ou Vector) qui contient des objets qui correspondant aux paires nom/score.


Avec ça tu peux trier la liste de retour (méthode sort() qui prend un Comparator) par ordre décroissant sur les score. L'élément 0 de la liste est l'objet nom/score qui contient le score le plus grand (et tu as même le nom avec).


Message édité par pascal34 le 15-04-2004 à 12:10:08
n°700025
nerisson
Pic-pic
Posté le 15-04-2004 à 12:02:19  profilanswer
 

Ca ne sert a rien de stocker tout les scores dans une liste pour ensuite chercher le plus grand.
Il suffit juste de stocker le max et de verifier ensuite a chaque ligne si le score acteullement lu est plus grand que le score max stocké.


---------------
Light is right
mood
Publicité
Posté le 15-04-2004 à 12:02:19  profilanswer
 

n°700033
pascal34
one point !
Posté le 15-04-2004 à 12:16:15  profilanswer
 

S'il se contente de sortir le score max et que plus tard il a aussi besoin du nom il faudra réanalyser le fichier (et dupliquer le code).
 
Là c'est fait une fois et il a toutes les infos dont il a besoin et dont il aura peut-être besoin.
 
Il vaut mieux séparer les tâches.


Message édité par pascal34 le 15-04-2004 à 12:18:14
n°700106
belzme
Hertz ou ne pas hertz...
Posté le 15-04-2004 à 13:42:01  profilanswer
 

Pour ton info il est mieux d'utiliser la fonction split que la fonction StringTokeniser tel que spécifié dans l'API :
 
"StringTokenizer is a legacy class that is retained for compatibility reasons although its use is discouraged in new code. It is recommended that anyone seeking this functionality use the split  method of String or the java.util.regex package instead."

n°700137
xiluoc
un pc pour les unirs ....
Posté le 15-04-2004 à 13:58:30  profilanswer
 

ok, j essayerai les regex


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

  StringTokenizer, ou est le problem ? :/

 

Sujets relatifs
Unresolved Problem[C#]problem de sauvegarde
problem de donnees sous oraclepackage htmlunit - problem pour capter le formulaire
script dans HTML + problem de cache avec ISA (un petit peut urgent)Problem de dimension de tableau en CSS
[ASP.NET] Problem avec File.Existsgros problem avec visual c++
StringTokenizer et espaceproblem de tableau a 2 dim passer en argument dans une fonction
Plus de sujets relatifs à : StringTokenizer, ou est le problem ? :/


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