[Java] question philosophique (?)

question philosophique (?) [Java] - Programmation

Marsh Posté le 06-02-2002 à 11:22:20    

pourquoi ne peux-je écrire ça :
 
for(StringTokenizer sToken = new StringTokenizer(aString, "/" ), int i=0, int nbToken=sToken.countTokens(); i < nbToken; i++; sToken.nextToken()){}
 
System.out.println("Last token is: " + sToken.nextToken());
 
(il râle sur int i = 0)
 
j'ai trouvé une façon de faire + rapide (je crois) avec un substring à partir d'un lastIndexOf("/" ); mais c'est pour ma culture générale.
 
merci :hello:


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 06-02-2002 à 11:22:20   

Reply

Marsh Posté le 06-02-2002 à 11:34:56    

J'ai pas trop l'habitude de faire en condensé, mais je pense que le for aime pas trop la , avant le int i = 0. Et je vois pas pourquoi tu colles 46000 arguments... Je trouve pas ca tres propre.


---------------
"Si ça peut déconner, ça va déconner..."
Reply

Marsh Posté le 06-02-2002 à 11:41:12    

en fait, au début, ça ne devait pas être ôssi compliqué ;)
et pis j'ai rajouté des trucs au fur et à mesure...
 
là j'ai viré ce code de ouf (beaucoup trop compliqué :D ) par un qui fonctionne (substring).
 
en fait, il râle sur la , il demande un ;
 
je ne cromprends pas pq... je me demande si ce n'est pas parce que je fais une déclaration et une initialisation en même temps... :??:

 

[edtdd]--Message édité par TBone--[/edtdd]


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 06-02-2002 à 11:43:49    

Je verrais plutôt ca (à moins que se soit faux):
 
StringTokenizer sToken = new StringTokenizer(aString, "/" );
int nbToken=sToken.countTokens()
int i;
for(i=0 ; i < nbToken ; i++){
 sToken.nextToken(); }  
 
System.out.println("Last token is: " + sToken.nextToken());


---------------
"Si ça peut déconner, ça va déconner..."
Reply

Marsh Posté le 06-02-2002 à 12:40:36    

j'avais fait ça aussi... mais mon substring se fait en une ligne... et est quand même plus simple à lire pour comprendre ce que je fais...
 
String substring = currentPageID.substring(currentPageID.lastIndexOf("/" ) + 1);
 
je ne sais pas pourquoi j'ai bondi sur le StringTokenizer :heink:


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 06-02-2002 à 12:44:02    

TBone a écrit a écrit :

pourquoi ne peux-je écrire ça :
 
for(StringTokenizer sToken = new StringTokenizer(aString, "/" ), int i=0, int nbToken=sToken.countTokens(); i < nbToken; i++; sToken.nextToken()){}
 
System.out.println("Last token is: " + sToken.nextToken());
 
(il râle sur int i = 0)
 
j'ai trouvé une façon de faire + rapide (je crois) avec un substring à partir d'un lastIndexOf("/" ); mais c'est pour ma culture générale.
 
merci :hello:  



.
a la base, for(;;) a seulement 2 ";" le tien en a 3!
et puis de toute facon ce code est vraiment illisible  :pt1cable:

 

[edtdd]--Message édité par veryfree--[/edtdd]

Reply

Marsh Posté le 06-02-2002 à 13:27:17    

c'est en retapant le code ici que j'ai mis le 3ème apparemment.
mais tu as raison, c'est complètement illisible. (ça me rappelle du code C que mon prof nous refilait en interro pour qu'on lui dise ce que ça faisait. :gun: )


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 06-02-2002 à 15:11:42    

Sinon, y'avait aussi :
 
String last = null;
 for (StringTokenizer st = new StringTokenizer(args[0], "/" );
      st.hasMoreTokens(); last = st.nextToken()) {
     
 }
 System.out.println("Last token is: "+last) ;
 
 
Ton bout de code, en plus, il pose problème, pasque le StringTokenizer n'est pas connu en dehors du for, donc, ta dernière ligne aurait planté à la compilation....Mais bon, c clair qu'il vaut sans doute mieux faire avec le lastIndexOf....Ou alors, adns le cas précis du "/" comme séparateur, regarder les méthodes de la classe File!! :D

Reply

Marsh Posté le 06-02-2002 à 17:06:04    

gfive> très juste !
 
le "/" est effectivement utilisé dans un contexte de fichiers ;) mais un peu plus complexe car c'est une image d'un chemin logique et gnagnagna :D (techno interne dans ma boîte ;) )
 
beh donc ça marche maintenant les gars! merci!
 
au fait, pour rester dans la philosophie:
 
pouquoi dit-on que "String args []" c'est le même que "String [] args" ? Je suis persuadé qu'il existe une différence étant donné que cela s'écrit de 2 manières différentes... mais je ne trouve pô...


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Marsh Posté le 06-02-2002 à 18:23:25    

non je pense qu'il y a pas de différence. C'est pour garder les habitude des vieux programateurs C qu'ils ont laissé la 2e façon de l'écrire.
 
Perso je trouve que le String[] args est bien plus logique : on voit tout de suite que le type de args est 'String[]'


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 06-02-2002 à 18:23:25   

Reply

Marsh Posté le 07-02-2002 à 08:33:52    

c'est ce que j'écris toujours...


---------------
A straight line is a special case of a curve. It's a curve which is uncurved. -- Susskind.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed