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

  FORUM HardWare.fr
  Programmation
  Java

  Faire une boucle avec un argument du tableau et définir si args=nombre

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Faire une boucle avec un argument du tableau et définir si args=nombre

n°2194727
splint33
Posté le 18-06-2013 à 15:21:43  profilanswer
 

Bonjour à tous, je cherche actuellement à faire une boucle avec un argument du tableau.
En fait, je travaille sur un petit plugin qui permettra de faire, entre autres, des boucles de musique via une URL.
Le système est simple, le joueur tape /playloop [Durée] [URL].
Le plugin lit la valeur [durée], la multiplie par 20 (les ticks) et au bout de X secondes, relance la commande de lecture de la musique via URL.
Je suis donc face à deux problèmes:
 
Celui de la boucle qui ce relance en fonction de args[0].
Celui qui détecte si args[0] est seulement en chiffres (0123456789), pas de abcd -/\éè et autres caractères.
 
J'ai fais mes recherche pour mes deux problèmes sur internet, mais je n'ai rien trouvé.
 
Merci d'avance.

mood
Publicité
Posté le 18-06-2013 à 15:21:43  profilanswer
 

n°2194871
grundoc
Posté le 19-06-2013 à 11:46:56  profilanswer
 

Je ne comprend pas bien ton premier problème,
 
Pour le second utilise un try/catch :
 
 

Code :
  1. try{
  2.    int test = String.parseInt(args[0]);
  3.    // ici tu test si argss[0] est bien un entier
  4. }catch(Exception e){
  5.    // si args[0] n'est pas un entier on tombe ici
  6. }


---------------
Mes vente
n°2194896
splint33
Posté le 19-06-2013 à 13:26:53  profilanswer
 

Merci pour la réponse.
Mon premier problème est simple, je souhaite faire une boucle qui boucle quand X = 0, le X étant rentré par l'utilisateur dans la première colonne d'un tableau, et est appelé args[0].
Chaque seconde, le X diminue de 1 (D'ou le X*20, pour obtenir X en secondes et non en ticks)
Ma boucle doit donc faire un tour à chaque fois que X = 0, et à chaque boucle X reprend sa valeur initiale.
 
Cela permet de faire lire une musique en boucle, pour vu que l'utilisateur entre la durée de la musique, jusqu'à ce que le plugin stoppe la boucle.


Message édité par splint33 le 19-06-2013 à 13:28:14
n°2194898
kms77
PSN: KEURT77
Posté le 19-06-2013 à 13:36:24  profilanswer
 

grundoc a écrit :

Je ne comprend pas bien ton premier problème,

 

Pour le second utilise un try/catch :

 


Code :
  1. try{
  2.    int test = String.parseInt(args[0]);
  3.    // ici tu test si argss[0] est bien un entier
  4. }catch(Exception e){
  5.    // si args[0] n'est pas un entier on tombe ici
  6. }


 

ce code est faux :s.
Ce n'est pas

Code :
  1. int test = String.parseInt(args[0]);


mais

Code :
  1. int test = Integer.parseInt(args[0]);
 

et il ne faut jamais catcher Exception, ici il vaut mieux catcher NumberFormatException.
Ce qui donne

Code :
  1. try{
  2.    int test = Integer.parseInt(args[0]);
  3.    // ici tu test si args[0] est bien un entier
  4. }catch(NumberFormatException e){
  5.    // si args[0] n'est pas un entier on tombe ici
  6. }
 

Je ne comprends pas ton premier problème. Tu veux faire une boucle tant que x est différent de 0?
Si oui :

Code :
  1. while(x != 0){
  2.    // on fait le travail ici
  3. }
 

J'ai peut-être (certainement) mal compris :s

Message cité 1 fois
Message édité par kms77 le 19-06-2013 à 13:39:43
n°2194921
grundoc
Posté le 19-06-2013 à 14:22:16  profilanswer
 

kms77 a écrit :

ce code est faux :s.
Ce n'est pas

Code :
  1. int test = String.parseInt(args[0]);


mais

Code :
  1. int test = Integer.parseInt(args[0]);



 

Yes :D, c'est plutôt comme ça. Par contre pour catcher l'erreur, la classe NumberFormatException est une extension de Exception, donc en utilisant cette dernière cela reviens à catcher toutes les exceptions possible.

 

Pour le problème de la boucle je pense plutôt à

 
Code :
  1. while(lire_la_musique_en_boucle = true){
  2.    for(int i = X, i > 0, i--){
  3.       // Ici ton i décrémente de X à 1.
  4.    }
  5. }


Message édité par grundoc le 19-06-2013 à 14:23:23

---------------
Mes vente
n°2194923
kms77
PSN: KEURT77
Posté le 19-06-2013 à 14:25:14  profilanswer
 

grundoc a écrit :

 

Yes :D, c'est plutôt comme ça. Par contre pour catcher l'erreur, la classe NumberFormatException est une extension de Exception, donc en utilisant cette dernière cela reviens à catcher toutes les exceptions possible.

 


 

Oui je suis d'accord mais il est très déconseillé de catcher toutes les exceptions d'un coup. C'est le maaaaal :p


Message édité par kms77 le 19-06-2013 à 14:25:27
n°2194930
splint33
Posté le 19-06-2013 à 14:30:51  profilanswer
 

Le problème c'est que args[0] qui définit X est un String, et que je ne peux pas incrémenter, retirer ou faire quoi que ce soit dessus, car sinon je tente de retirer un int à un string, et il me sort une erreur

Message cité 1 fois
Message édité par splint33 le 19-06-2013 à 14:31:46
n°2194945
grundoc
Posté le 19-06-2013 à 14:54:53  profilanswer
 

splint33 a écrit :

Le problème c'est que args[0] qui définit X est un String, et que je ne peux pas incrémenter, retirer ou faire quoi que ce soit dessus, car sinon je tente de retirer un int à un string, et il me sort une erreur


Ce n'est pas un problème, args[0] est un string mais X est un entier. De plus ma boucle ne touche pas au X, elle décrémente i en l'initialisant à X, l'exemple complet te permettra surement de mieux comprendre :
 

Code :
  1. try{
  2.    int X = Integer.parseInt(args[0]);
  3.    // ici tu test si args[0] est bien un entier
  4.    while(lire_la_musique_en_boucle = true){
  5.       for(int i = X, i > 0, i--){
  6.       // Ici ton i décrémente de X à 1.
  7.       }
  8.    }
  9. }catch(NumberFormatException e){
  10.    System.out.err("le premier paramètre doit être un entier !!!" ); //Affiche une erreur dans la console
  11.    // si args[0] n'est pas un entier on tombe ici
  12. }


Et voilà, si le premier argument n'est pas un entier une erreur s'affiche dans ta console. Sinon tant que le booléen lire_la_musique_en_boucle est vrais, le sample sera lu en boucle.


Message édité par grundoc le 19-06-2013 à 14:56:03

---------------
Mes vente

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

  Faire une boucle avec un argument du tableau et définir si args=nombre

 

Sujets relatifs
Parsage XML vers tableau PHP[Résolu] Problème affichage tableau
Besoin d'aide appel de tableaupeties question php/mysql sur le nombre de req
Stocker grand nombre d'objets / mauvaise structure de donnée ?nombre des paramètres dans une fonction
Joindre le nombre d'enregistrement freresSupprimer des valeurs d'un tableau
A supprimer : doublonsBoucle while en erreur
Plus de sujets relatifs à : Faire une boucle avec un argument du tableau et définir si args=nombre


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