IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

saisie d'une chaine de caractere numerique


Sujet :

avec Java

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 11
    Points : 11
    Points
    11
    Par défaut saisie d'une chaine de caractere numerique
    bonsoir,
    j'aimerais savoir comment demander a l'utilisateur de saisir uniquement une chaine de caractère numérique cet a dire une chaine de caractère composer que des chiffre par exemple: "1234" a chaque fois que l'utilisateur saisie une autre chaine qui est non numerique que sa soit une boucle.Au niveau de mon code je me suis bloquer a ce niveau voici mon code si dessous
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    import java.util.Scanner;
     
    public class TestChaines {
    	static Scanner clavier = new Scanner(System.in);
     
    	public static void main(String[] args) {
    		/* question n°1 */
    		int variable = 12345;
    		String s = String.valueOf(variable);
    		System.out.println("chaine de caractère " + s);
    		/* question n°2 */
    		char teste1 = 48;
    		char teste2 = 57;
    		// System.out.println(teste1);
    		System.out.println("Saisissez une chaine de caractère composée de chiffres ");
    		String chaine = clavier.nextLine();
     
    		if (chaine == null) {
    			System.out.println("vous n'avez rien saisie");
    		} else {
     
    			int i = 0;
    			while (chaine.charAt(i) >= teste1 && chaine.charAt(i) <= teste2 && i < chaine.length()) {
    				i++;
    			}
    			if (i >= chaine.length()) {
    				System.out.println("vous venez de saisir une chaine de caractere numerique");
    			}
     
    		}
     
    	}
    }

  2. #2
    Membre éprouvé
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 630
    Points : 1 029
    Points
    1 029
    Par défaut
    Bonjour,

    Saches que tu peux toujours demander à l'utilisateur de saisir une chaîne de caractères composée uniquement de caractères numériques, par contre rien ne te garanti que l'utilisateur le fera.
    Ainsi c'est à toi et toujours à toi de vérifier la validité de l'entrée saisie par l'utilisateur. Tu ne peux pas obliger la saisie de l'utilisateur mais tu as le devoir de vérification.

    Il faut que dans ton code tu vérifies la saisie utilisateur, et tant que l'utilisateur n'a pas saisi une valeur numérique stricte alors tu bloques les instructions / traitements suivants jusqu'à ce que l'utilisateur saisisse la valeur attendue.

    Afin de vérifier que l'entrée saisie par l'utilisateur est composée de nombre, il faut parcourir la chaîne et vérifier la valeur ASCII de chaque caractère.
    Voici le lien de la table ASCII https://fr.wikipedia.org/wiki/Fichier:ASCII-Table.svg

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    import static java.lang.System.out;
    import java.util.Scanner;
     
    public class Application {
     
        private final static Scanner clavier = new Scanner(System.in);
     
        public static void main(String[] args) {
            checkValeurNumerique();
        }
     
        private static void checkValeurNumerique() {
     
            out.println("Veuillez saisir une chaîne de caractères composée uniquement de chiffres.");
            String entree = clavier.nextLine();
            if (entree.isEmpty()) {
                out.println("La chaîne de caractères saisie en entrée est vide !!!");
            } else {
                entree.toLowerCase();
                for (int index = 0; index < entree.length(); ++index) {
                    // dans la table ASCII un car. numérique est compris entre les valeurs incluses 48 et 59 
                    final boolean estValeurNumerique = entree.charAt(index) >= 48 && entree.charAt(index) <= 57;
                    if (estValeurNumerique) {
                        out.println("Vous avez saisi la valeur numérique : " + entree);
                        break;
                    } else {                    
                        out.println("Vous devez absolument saisir une chaîne de caractères composée de chiffres !!!");
                        entree = clavier.nextLine();
                        if (estValeurNumerique);                    
                    }
                } // for
            }
        }

    Transact.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2020
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2020
    Messages : 11
    Points : 11
    Points
    11
    Par défaut chaine de caractere numerique
    Bonsoir Transact.;
    j'ai essayer le code que tu ma récommander mais ça na pas aussi marcher..........

  4. #4
    Membre chevronné
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Points : 1 855
    Points
    1 855
    Par défaut
    version violente: tu fais new BigInteger(laChaine) et tu rattrapes l'exception
    J'ai des principes: je peux toujours trouver une bonne raison pour les contredire .... mais j'ai des principes!
    (mon excellent bouquin sur Java : https://eska-publishing.com/fr/livre...822407076.html)

  5. #5
    Membre éprouvé
    Avatar de Rony Rauzduel
    Homme Profil pro
    En formation Architecte logiciel
    Inscrit en
    Décembre 2008
    Messages
    630
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : En formation Architecte logiciel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 630
    Points : 1 029
    Points
    1 029
    Par défaut
    De façon plus concise, et en empêchant tout autre valeur non numérique, tu peux faire cela.
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    import static java.lang.System.out;
    import java.math.BigInteger;
    import java.util.Scanner;
     
    public class Application {
     
        public static void main(String[] args) {
            checkValeurNumerique();
        }
     
        private static void checkValeurNumerique() {
            try (final Scanner clavier = new Scanner(System.in)) {
                out.println("Veuillez saisir une chaîne de caractères composée uniquement de chiffres.");
                BigInteger entree = clavier.nextBigInteger();
                out.println("Vous avez saisi la valeur numérique : " + entree);
            } catch (Exception e) {
                out.println("Vous devez absolument saisir une valeur composée uniquement de chiffres !!!");
                e.getMessage();
            }
        }
    }

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  2. Extraire du numerique dans une chaine de caractere
    Par jane2002 dans le forum Access
    Réponses: 4
    Dernier message: 08/03/2006, 12h33
  3. Extraire un nom d'une chaine de caractere
    Par iamspacy dans le forum Linux
    Réponses: 4
    Dernier message: 03/05/2004, 21h34
  4. Réponses: 2
    Dernier message: 30/03/2004, 11h31
  5. Controler une chaine de caracteres ou d'entiers?
    Par Le druide dans le forum C
    Réponses: 6
    Dernier message: 25/09/2003, 08h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo