Tester un string
Fermé
mimi19911980
Messages postés
22
Date d'inscription
mardi 10 novembre 2020
Statut
Membre
Dernière intervention
14 octobre 2021
-
Modifié le 24 nov. 2020 à 05:41
mimi19911980 Messages postés 22 Date d'inscription mardi 10 novembre 2020 Statut Membre Dernière intervention 14 octobre 2021 - 25 nov. 2020 à 13:57
mimi19911980 Messages postés 22 Date d'inscription mardi 10 novembre 2020 Statut Membre Dernière intervention 14 octobre 2021 - 25 nov. 2020 à 13:57
A voir également:
- Tester un string
- Tester son pc - Guide
- Flash drive tester - Télécharger - Divers Utilitaires
- Tester un lien - Guide
- Tester signal wifi gratuit - Guide
- Tester composant pc - Guide
3 réponses
Bonjour,
Ceci repond peut etre a votre question, sinon soyez plus claire:
https://forums.commentcamarche.net/forum/affich-1989308-tester-si-un-string-est-un-entier#answers
Ceci repond peut etre a votre question, sinon soyez plus claire:
https://forums.commentcamarche.net/forum/affich-1989308-tester-si-un-string-est-un-entier#answers
Whismeril
Messages postés
19027
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
24 avril 2024
931
24 nov. 2020 à 08:32
24 nov. 2020 à 08:32
Bonjour
Imaginons que tu viennes à mon bureau. Je n’y suis pas mais tu trouves une feuille sur laquelle j’ai écrit 123. L’esprit humain que tu possèdes va de suite penser que c’est le nombre 123. Mais c’est une interprétation, factuellement, c’est du texte, puisqu’il est écrit sur une feuille et qu’un nombre est un concept.
Ensuite, tu vas commencer à émettre des hypothèses, par exemple que je suis peut-être parti au bureau 123. Ce qui signifie le bureau 23 de l’étage 1 dans mon entreprise. Du coup 123 n’est plus un nombre mais un code ou un nom.
Mais en vrai, j’étais au téléphone avec un client qui habite au 123 rue Machin, je commençais à noter son adresse, quand il a ajouté que c’est entre la station service Truc et la boulangerie Chose. Comme je voyais où cela se trouve j’ai arrêté de noter. Finalement 123 c’est un lieu, pas un nombre.
Et bien quand on tape au clavier, c’est comme quand on écrit, c’est du texte.
Et c’est l’interprétation ou le contexte qui donne une signification à ce texte.
L’ordinateur ne fait pas de supposition tout seul. C’est à toi de la coder.
Par exemple, si tu taper scanner.nextint, tu forces l’ordinateur à convertir le texte saisi en entier.
A l’inverse, le nom d’une société pourrait très bien être 123
Imaginons que tu viennes à mon bureau. Je n’y suis pas mais tu trouves une feuille sur laquelle j’ai écrit 123. L’esprit humain que tu possèdes va de suite penser que c’est le nombre 123. Mais c’est une interprétation, factuellement, c’est du texte, puisqu’il est écrit sur une feuille et qu’un nombre est un concept.
Ensuite, tu vas commencer à émettre des hypothèses, par exemple que je suis peut-être parti au bureau 123. Ce qui signifie le bureau 23 de l’étage 1 dans mon entreprise. Du coup 123 n’est plus un nombre mais un code ou un nom.
Mais en vrai, j’étais au téléphone avec un client qui habite au 123 rue Machin, je commençais à noter son adresse, quand il a ajouté que c’est entre la station service Truc et la boulangerie Chose. Comme je voyais où cela se trouve j’ai arrêté de noter. Finalement 123 c’est un lieu, pas un nombre.
Et bien quand on tape au clavier, c’est comme quand on écrit, c’est du texte.
Et c’est l’interprétation ou le contexte qui donne une signification à ce texte.
L’ordinateur ne fait pas de supposition tout seul. C’est à toi de la coder.
Par exemple, si tu taper scanner.nextint, tu forces l’ordinateur à convertir le texte saisi en entier.
A l’inverse, le nom d’une société pourrait très bien être 123
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
24 nov. 2020 à 08:46
24 nov. 2020 à 08:46
Bonjour,
Vu ton code et en particulier la condition chaine.length()==0 qui sera toujours faux, il n'y a pas de raison qu'il accepte quoi que ce soit, tout sera faux.
En programmation il faut scinder ton travail, créer des méthodes intermédiaires pour chaque étape de ton raisonnement. Ici tu veux vérifier qu'une chaîne de caractères est alphabétique, alors créé une méthode pour ça, que tu pourras tester unitairement, en dehors du reste de ton programme.
Exemple :
Sur le même principe de découpage, tu devrais créer une méthode spécifique à la lecture au clavier.
Vu ton code et en particulier la condition chaine.length()==0 qui sera toujours faux, il n'y a pas de raison qu'il accepte quoi que ce soit, tout sera faux.
En programmation il faut scinder ton travail, créer des méthodes intermédiaires pour chaque étape de ton raisonnement. Ici tu veux vérifier qu'une chaîne de caractères est alphabétique, alors créé une méthode pour ça, que tu pourras tester unitairement, en dehors du reste de ton programme.
Exemple :
public static boolean isAlphabetic(String chaine) { return chaine != null && !chaine.isBlank() && chaine.chars().allMatch(Character::isAlphabetic); } public static void main(String[] args) { System.out.println(isAlphabetic(null)); // false System.out.println(isAlphabetic(" ")); // false System.out.println(isAlphabetic("abcdef")); // true System.out.println(isAlphabetic("123456")); // false System.out.println(isAlphabetic("abc123")); // false }
Sur le même principe de découpage, tu devrais créer une méthode spécifique à la lecture au clavier.
private static final Scanner clavier = new Scanner(System.in); public static String nextAlphabetic(String label) { String result; do { System.out.println(label); result = clavier.nextLine(); } while (!isAlphabetic(result)); return result; } public static void main(String[] args) { String nomFournisseur = nextAlphabetic("Veuillez saisir le nom du fournisseur"); System.out.println(nomFournisseur.toUpperCase()); }
mimi19911980
Messages postés
22
Date d'inscription
mardi 10 novembre 2020
Statut
Membre
Dernière intervention
14 octobre 2021
Modifié le 27 nov. 2020 à 09:12
Modifié le 27 nov. 2020 à 09:12
merci beaucoup pour ton aide j'ai un autre problème;
j'ai une fonction ajouter j'ajoute le numéro d'item la description , le sexe, le prix.....ect
alors je fais des teste de validation pour chaque saisi.
le problème c'est que juste la première vérification qui marche je pense le problème est avec le Boolean fin= false
voici mon code je veux faire de telle sorte que si utilisateur fait une saisi erroné il doit refaire le teste de validation.
merci beaucoup
j'ai une fonction ajouter j'ajoute le numéro d'item la description , le sexe, le prix.....ect
alors je fais des teste de validation pour chaque saisi.
le problème c'est que juste la première vérification qui marche je pense le problème est avec le Boolean fin= false
voici mon code je veux faire de telle sorte que si utilisateur fait une saisi erroné il doit refaire le teste de validation.
public static void ajouter(){ boolean fin=false; String chaine; System.out.println("***TRACE procédure ajouter"); System.out.println(" saisir saisie num item"); chaine=clavier.nextLine(); while(fin==false) { System.out.println(" erreur saisie num item"); chaine=clavier.nextLine(); if(tousDesChiffres(chaine)&&(chaine.length()!=0)&&(localiser(chaine)<0)){ fin=true; numItem[ctr]=Integer.parseInt(chaine); } } System.out.println("veuiller saisir le prix de revient"); chaine=clavier.nextLine(); while(!verifierPrix(chaine)){ System.out.println(" erreur veuillez resaisir le prix de revient "); chaine=clavier.nextLine(); if(verifierPrix(chaine)){ fin=true; prixReviens[ctr]=Double.parseDouble(chaine); }} System.out.println("veuillez saisir la quqntité "); chaine=clavier.nextLine(); while(!verifierQuqntite(chaine)){ System.out.println(" erreur veuillez resaisir la quantite"); chaine=clavier.nextLine(); if(verifierQuqntite(chaine)){ fin=true; quantite[ctr]=Integer.parseInt(chaine); }} System.out.println("veuillez saisir le nom du fournisseur"); chaine= clavier.nextLine(); while(!tousDesLettres(chaine)){ System.out.println("veuillez saisir le nom du fournisseur"); chaine= clavier.nextLine(); if (tousDesLettres(chaine) ) fin=true; nomFournisseur[ctr] = (chaine.toUpperCase()); } }
merci beaucoup
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
3 015
>
mimi19911980
Messages postés
22
Date d'inscription
mardi 10 novembre 2020
Statut
Membre
Dernière intervention
14 octobre 2021
25 nov. 2020 à 07:47
25 nov. 2020 à 07:47
Commence par appliquer les conseils que je t'ai donné cela t'évitera des bidouilles du genre fin=true, jamais dans un vrai programme Java on ne ferait comme ça...
mimi19911980
Messages postés
22
Date d'inscription
mardi 10 novembre 2020
Statut
Membre
Dernière intervention
14 octobre 2021
>
KX
Messages postés
16733
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 janvier 2024
25 nov. 2020 à 13:57
25 nov. 2020 à 13:57
oui mais la j'ai un tp a faire le prof nous exige cette methode