Tester si un string est un entier

Résolu/Fermé
carkiasis Messages postés 67 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 26 avril 2007 - 19 déc. 2005 à 19:36
 visior64 - 8 nov. 2016 à 10:40
Bonjour,
je suis opposé à un petit problème en java: Je voudrais tester si une chaine de caractères est un entier. Il existe bien par exemple isNaN en javascript ou encore isdigitt en C, mais existe-t-il une fonction similaire en Java ?? J'ai beau chercher sur le forum ou encore sur la doc api mais je ne trouve pas...
A voir également:

7 réponses

Bonjour,

try {
int i = Integer.parseInt(machaine);
System.out.println("C'est un entier");
}
catch (Exception e) {
System.out.println("Je ne suis pas un entier, et alors ca te derange ?");
}
33
Très radical comme méthode...
N'existe-t-il pas tout simplement une méthode qui renvoie un booleen, dans le genre :
int i = 0;

if( Integer.isInt(maVariable) ){

i = Integer.parseInt(maVariable);

}

else System.out.println("Je ne suis pas un entier, et alors ca te derange ?");
0
Bon et bien comme j'ai l'âme d'un Power Rangers, j'ai décidé de créer ma propre méthode qui teste si un string est un entier :

class Entier {
public static boolean isInt(String chaine){
boolean valeur = true;
char[] tab = chaine.toCharArray();

for(char carac : tab){
if(!Character.isDigit(carac) && valeur){ valeur = false; }
}

return valeur;
}
}

Testez :
String s1 = "1t2o1t2o"; // testez avec 1212 aussi pour voir la différence.
if(Entier.isInt(s1)) System.out.println("Je suis un entier");
else System.out.println("Je ne suis pas un entier");


Si vous trouvez mieux, n'hésitez pas à poster votre solution.

Et au cas où si un employé d'Oracle passe par ici, qu'il n'hésite pas à avoir une promotion avec cette nouvelle méthode révolutionnaire.
0
Heia > Toto
19 mai 2015 à 11:22
Super méthode ! Marche nickel, merci beaucoup :)
0
visior64 > Toto
8 nov. 2016 à 10:40
Merci ! Génial ! ça marche nickel !
0
private boolean testErreur (String la cc/*chaine de caractaire*/){
char [] s =cc.toCharArray();
boolean testerreurfrappe= true;

for (int i=0; i<s.length;i++){
if(!Character.isDigit(s[i]) )
{testerreurfrappe= false;}
}
return testerreurfrappe;
}
apres faut juste si testerreur == true alors on utilise persInt si nn on indique qu'il y'a une erreur de frappe :)
0
carkiasis Messages postés 67 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 26 avril 2007 28
20 déc. 2005 à 19:59
Merci bien, c'est exactement ce qu'il me fallait...
1
jcodeunpeu Messages postés 365 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 2 décembre 2006 6
19 déc. 2005 à 20:51
bonsoir,
ben oui, isDigit pareil, as-tu la doc ?
A+
0
Utilisateur anonyme
20 déc. 2005 à 09:39
0
Très smart la solution avec la Regex, je prends ;) (celle à la fin du post pointé par ce lien)
Thanx very much HackTrack
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
carkiasis Messages postés 67 Date d'inscription jeudi 17 février 2005 Statut Membre Dernière intervention 26 avril 2007 28
20 déc. 2005 à 12:11
Merci de votre aide, c'est sympa.
jcodeunpeu(original comme login), j'ai essayé isDigit(string) ou encore isdigit, Isdigit,...mais il ne reconnait pas la fonction, c'est bizarre...

Et qu'est ce que tu voulais dire par ta question "as-tu la doc ?". Quand moi je parle de la doc api, je parle de ca :
http://java.sun.com/j2se/1.5.0/docs/api/
C'est une mine d'or cette adresse...
0
philtrain Messages postés 169 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 25 juillet 2010 73
20 déc. 2005 à 12:58
Bonjour,

Pour la methode isDigit de la classe Character, c'est ici:
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Character.html#isDigit(char)


Philippe.
0
Bonjour,

J'ai un probleme avec cette methode (isDigit). Elle ne veut pas marcher. A la compile un message d'erreur s'affiche:

cannot find symbol
symbol : method isDigit(java.lang.String)
location: class Client

test=isDigit(tmp);
^

j'ai bien mis "import java.lang.Character;" mais sa change rien.

J'ai tout essayé, pliz HELP!!!

merci d'avance.
0
BoOmSoluTioN Messages postés 5 Date d'inscription vendredi 8 février 2008 Statut Membre Dernière intervention 16 novembre 2008
12 févr. 2008 à 15:55
bonjour

essai ça:


test=java.lang.Character.isDigit(tmp);

a+
0