Bonjour, j'ai une variable du type :
String chaine = "test";
comment pourrais-je tester le type de la variable "chaine"?
cela me sert à éviter de faire un cast de ma chaine en entier (Integer.parseInt(chaine)).
Merci de votre aide.
Bonjour, j'ai une variable du type :
String chaine = "test";
comment pourrais-je tester le type de la variable "chaine"?
cela me sert à éviter de faire un cast de ma chaine en entier (Integer.parseInt(chaine)).
Merci de votre aide.
La variable chaine étant déclarée comme String, elle ne pourra être que de type String (ou bien prendre la valeur null).
Si tu cherches à détecter quel est le contenu de la chaîne, tu peux utiliser la classe java.util.Scanner et ses méthodes comme hasNextInt(), hasNextLong(), etc.
si par exemple je fais :
int entier = Integer.parseInt(chaine);
si ma chaine est "22", alors mon entier sera le nombre 22!
je ne connais pas ces méthodes, sont elles toujours valable pour vérifier le type de "chaine" ?
Cette méthode ne "vérifie" pas de "type". Cette méthode suppose que le contenu de la chaîne peut être interprété comme un nombre, et calcule (ont dit, "parse",) le nombre en question. Si la chaîne ne représente pas vraiment un nombre, cette méthode génère une exception.
Bon, du coup ça veut dire que si tu veux vérifier que la chaîne contient bien un nombre, eh bien tu peux appeler cette méthode : s'il y a exception ce n'était pas un nombre. Si tout s'exécute normalement c'était bien un nombre et tu sais même lequel.
Salut,
Note tout de même que le type d'une variable peut être:
-String
-byte
-short
-int
-etc
Cordialement,
Dan
Quelle est la question exactement ?
Tu veux vérifier si une chaine contient bien un nombre ou effectivement sont type ?
Dans le premier cas, le plus simple est de tenter la conversion et de traiter l'exception.
Dans le second cas, tu as instanceof qui te permet de tester le type de la classe.
oui je veux vérifier son type, pourrais tu m'indiquer stp comment utiliser instanceof.
Merci à tout le monde pour votre aide
Comme je l'ai expliqué précédemment, si la variable chaine est déclarée en tant que String, elle ne pourra être que de type String. Il est donc inutile dans ce cas de tester quel est le type. Le seul cas particulier est que la chaîne déclarée ait null comme valeur.
Par exemple, le code suivant affichera chaine est de type String.
Je pense que tu n'as pas bien compris la notion de type.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 String chaine = "42"; if(chaine instanceof String) { System.out.println("chaine est de type String"); } else { System.out.println("chaine n'est pas de type String"); }
oui c'est vrai..
en fait je voudrais empêcher d'enregistrer un String à la place d'un int dans ma base de donnée. il faudrait donc que je traite l'exception.
Ainsi si j'effectue ma conversion :
String chaine= "22";
int i = Integer.parseInt();
et que je génère une exception alors je saurais que l'entier saisi n'est pa correct.
Sauriez vous comment faire cela ?
Integer.parseInt() lève une exception de type java.lang.NumberFormatException si la chaîne passée en paramètre n'est pas au bon format. Il suffit de traiter l'exception.
Si tu ne sais pas comment traiter les exceptions, commence par lire la FAQ.
voilà la réponse :
// on vérifier que le nombre entré est bien un entier
try {
nombre = Integer.parseInt(chaine.getText());
} catch (NumberFormatException exc){
JOptionPane.showMessageDialog(new Frame(),"Veuillez saisir un nombre correct!" );
System.exit(-1);
}
merci beaucoup tout le monde et particulièrement à Desintegr qui m'a mis dans la bonne voie ;-)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager