A voir également:
- Besoin d'une aide en java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java décompiler - Télécharger - Langages
- Java runtime - Télécharger - Langages
11 réponses
Utilisateur anonyme
20 déc. 2005 à 08:43
20 déc. 2005 à 08:43
A la demande générale: en utilisant les expressions régulières
;-)
HackTrack
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; /* * Created on Dec 20, 2005 * */ public class IntFormatTester_2 { private ArrayList inputs; private BufferedReader in; public IntFormatTester_2() { super(); inputs = new ArrayList(); in = new BufferedReader(new InputStreamReader(System.in)); } public void readInput() { String line = ""; while (inputs.size() < 3) { String message = "L'entrée est valide et a été enregistrée."; try { line = in.readLine(); } catch (IOException e) { e.printStackTrace(); } if (isValidInt(line)) { inputs.add(Integer.valueOf(line)); } else { message = "L'entrée n'est pas valide. Veuillez entrer un entier valide"; } System.out.println(message); } System.out.println("Le traitement continue..."); } private boolean isValidInt(String toTest) { Pattern p = Pattern.compile("(\\d)+"); Matcher m = p.matcher(toTest); if (m.lookingAt() && m.start() == 0 && m.end() == (toTest.length())) return true; return false; } public static void main(String[] args) { IntFormatTester_2 tester = new IntFormatTester_2(); tester.readInput(); } }
;-)
HackTrack
philtrain
Messages postés
169
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
25 juillet 2010
73
14 déc. 2005 à 09:01
14 déc. 2005 à 09:01
Bonjour,
Pourquoi ne pas utiliser la classe NumberFormatException?
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/NumberFormatException.html
Philippe.
Pourquoi ne pas utiliser la classe NumberFormatException?
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/NumberFormatException.html
Philippe.
Merci beaucoup phillipe mais je voulais savoir si avec ma méthode ca marhe.
jcodeunpeu
Messages postés
365
Date d'inscription
mercredi 9 novembre 2005
Statut
Membre
Dernière intervention
2 décembre 2006
6
14 déc. 2005 à 16:09
14 déc. 2005 à 16:09
salut bifaka,
je ne crois pas non.
tu ne gère pas les exceptions levés par la lecture du flux in ....
d'ailleurs on ne sais pas comment tu l'instancie ... lors de l'appel de in.readLine(), ni NumberFormatException lors du parse ...
de plus, dans la condition de sortie while tu demande de relire de nouvelles lignes en réaffectant les n...
j'ai un petit prog sous la main mais qui utilise la méthode read(), çà te donnera une idée, mais c'est plus simple de lire la ligne complète...
A+
je ne crois pas non.
tu ne gère pas les exceptions levés par la lecture du flux in ....
d'ailleurs on ne sais pas comment tu l'instancie ... lors de l'appel de in.readLine(), ni NumberFormatException lors du parse ...
de plus, dans la condition de sortie while tu demande de relire de nouvelles lignes en réaffectant les n...
j'ai un petit prog sous la main mais qui utilise la méthode read(), çà te donnera une idée, mais c'est plus simple de lire la ligne complète...
public class SaisieNombres { public SaisieNombres(int n) { int [] N = new int [n]; for(int i =0;i < N.length;i++) { String str = ""; System.out.print("nombre " + (i + 1) + " : "); while(x != 10 ) { try { x = System.in.read(); // lit les saisies // réserve une possibilité de sortie if((char)x == 'q' || (char)x == 'Q') System.exit(0); if(x != 13 && x != 10) str += (char)x; }catch(IOException ioe) {/* Exception improbable */} } try { N[i] = Integer.parseInt(str); }catch(NumberFormatException nfe) { System.out.println("Entiers attendus, veuillez resaisir svp"); i--; // reprend le chiffre précédent } } /* Traitement du tableau de paramètres saisies System.out.println("Bravo vous avez saisie : "); for(int i=0;i < N.length;i++) { System.out.println("nombre " + (i + 1) + " : " + N[i]); } */ }// fin de constructeur public static void main (String [] arg) { if(arg == null || (arg != null && arg.length == 0)) { System.out.println("spécifier combien de chiffres à saisir SVP"); return; }else { try { int n = Integer.parseInt(arg[0]); System.out.println("Pour quitter à tous moments, saisir 'q'"); System.out.println("Saisir " +n + " nombres entiers svp"); new SaisieNombres(n); }catch(NumberFormatException nfe) { System.out.println("Saisie incorrecte, relancer le programme"); } } }// fin main }// fin classe
A+
Utilisateur anonyme
15 déc. 2005 à 08:45
15 déc. 2005 à 08:45
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; public class IntFormatTester { private ArrayList inputs; private BufferedReader in; public IntFormatTester() { super(); inputs = new ArrayList(); in = new BufferedReader(new InputStreamReader(System.in)); } public void readInput() { String line = ""; while (inputs.size() < 3) { try { line = in.readLine(); Integer newInput = Integer.getInteger(line); int i = Integer.valueOf(line).intValue(); inputs.add(newInput); System.out.println("'" + line + "' is valid and has been stored"); } catch (IOException e) { System.out.println("'" + line + "' is not an Integer"); } catch (NumberFormatException e) { System.out.println("'" + line + "' is not an Integer"); }finally { continue; } } System.out.println("Your 3 inputs are now valid. Process will continue"); } public static void main(String[] args) { IntFormatTester tester = new IntFormatTester(); tester.readInput(); } }
;-)
HackTrack
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
merci à jcodeunpeu et à hacktrack. jcodeunpeu peut tu revoir ton code, ca n'affiche rien. hacktrack peut tu commenter tes codes s'il te plait , je ne suis qu'une débutante en java. le code fonctionne 100% mais je n'y comprend rien. Quelqu'un de vous pourrait il completer le mien, je crois comme ca je pourrai mieux comprendre.
Merci à vous et bonne journée.
Merci à vous et bonne journée.
jcodeunpeu
Messages postés
365
Date d'inscription
mercredi 9 novembre 2005
Statut
Membre
Dernière intervention
2 décembre 2006
6
15 déc. 2005 à 20:52
15 déc. 2005 à 20:52
re bifika,
DE-SO-LE ...
j'aurai peut-être pu le garder pour le premier avril celui-là ....
non, en fait j'ai zappé une ligne en copiant et en enlevant les tabulations je crois :
il suffit d'inserer : int x = 0; // instancie x pour que le compilateur soit d'accord ...
d'ailleurs il a du te le dire, reste à placer cette ligne au bon endroit,
à savoir entre le for(....) et le while(...) .... et çà marche, maintenant peux tu nous dire ce que tu dois faire avec ces nombres ?
j'ajoute que pour lancer le programme en console, c'est :
>java SaisieNombres 3 (3 ou le nombres que tu veux)
A+
DE-SO-LE ...
j'aurai peut-être pu le garder pour le premier avril celui-là ....
non, en fait j'ai zappé une ligne en copiant et en enlevant les tabulations je crois :
il suffit d'inserer : int x = 0; // instancie x pour que le compilateur soit d'accord ...
d'ailleurs il a du te le dire, reste à placer cette ligne au bon endroit,
à savoir entre le for(....) et le while(...) .... et çà marche, maintenant peux tu nous dire ce que tu dois faire avec ces nombres ?
j'ajoute que pour lancer le programme en console, c'est :
>java SaisieNombres 3 (3 ou le nombres que tu veux)
A+
jcodeunpeu
Messages postés
365
Date d'inscription
mercredi 9 novembre 2005
Statut
Membre
Dernière intervention
2 décembre 2006
6
15 déc. 2005 à 21:07
15 déc. 2005 à 21:07
je revois un peu ton code pour te répondre :
A+
int n1,n2,n3; boolean valid = false; do{ try{ System.out.println("\n trois nombres Integer nombre "); System.out.print("a: "); n1 = Integer.parseInt(in.readLine()); System.out.print("b: "); n2= Integer.parseInt(in.readLine()); System.out.print("c: "); n3= Integer.parseInt(in.readLine()); valid = true; // si cette ligne est lue, la saisie est correcte... // bascule la valeur pour sortir de do...while }catch(NumberFormatException nfe){ System.out.println("vous n'avez donné un nombre Integer: "); // le problème en faisant comme çà est qu'il faut tout resaisir, // même les saisie correcte : }catch(Exception e){/* à voir */} }while ( ! valid); System.out.print("n1: " + n1); System.out.print("n2: " + n2); System.out.print("n3: " + n3);
A+
salut jcodeunpeu ,
un grand merci . Pour ta pensée, je dirai plutôt : le réel n'est pas ce que l'on voit mais ce que l'on refuse de voir.
Au fait je suis une débutante en java et j'essaye juste de m'exercer. Sans te mentir avec toi j'ai beaucoup appris et j'espèr epouvoir t'aider aussi.
Bonne journée.
un grand merci . Pour ta pensée, je dirai plutôt : le réel n'est pas ce que l'on voit mais ce que l'on refuse de voir.
Au fait je suis une débutante en java et j'essaye juste de m'exercer. Sans te mentir avec toi j'ai beaucoup appris et j'espèr epouvoir t'aider aussi.
Bonne journée.
Utilisateur anonyme
16 déc. 2005 à 09:53
16 déc. 2005 à 09:53
Tes désirs sont des ordres !
;-)
J'ai un peu modifié le code, il est un rien plus court encore.
;-)
HackTrack
;-)
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayList; public class IntFormatTester { private ArrayList inputs; private BufferedReader in; public IntFormatTester() { super(); inputs = new ArrayList(); in = new BufferedReader(new InputStreamReader(System.in)); } /** * Lit les entrées au clavier et les stocke dans une liste * tant que la liste ne contient pas 3 éléments. * */ public void readInput() { String line = ""; //Tant que la liste ne contient pas 3 entrées while (inputs.size() < 3) { try { // Lire une ligne line = in.readLine(); // Essayer de transformer l'entrée clavier en Integer Integer newInput = Integer.getInteger(line); // si l'entrée n'est pas valide, une Exception survient et on va dans le "catch" //On ajoute cette entrée valide dans la liste int i = Integer.valueOf(line).intValue(); inputs.add(newInput); //On avertit l'utilisateur que son entrée valide a bien été sauvegardée System.out.println("'" + line + "' is valid and has been stored"); } catch (Exception e) { // Entrée non valide = > Message d 'erreur System.out.println("'" + line + "' is not an Integer"); System.out.println("'" + line + "' is not a valid Integer"); } finally { //Que l'entré soit valide ou non, on continue la boucle "while" continue; } } //On est sorti de la boucle car 3 entrées valides ont été trouvées System.out.println("Your 3 inputs are now valid. Process will continue"); //Continuer ici le traitement... } public static void main(String[] args) { IntFormatTester tester = new IntFormatTester(); tester.readInput(); } }
J'ai un peu modifié le code, il est un rien plus court encore.
;-)
HackTrack
jcodeunpeu
Messages postés
365
Date d'inscription
mercredi 9 novembre 2005
Statut
Membre
Dernière intervention
2 décembre 2006
6
16 déc. 2005 à 19:55
16 déc. 2005 à 19:55
et on sera toujours là pour les gens sympathiques comme bifika,
pas vrai HachTrack ... :))
pas vrai HachTrack ... :))
25 nov. 2014 à 10:10