Tester si un string est un entier

Résolu
carkiasis Messages postés 67 Date d'inscription   Statut Membre Dernière intervention   -  
 visior64 -
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

spidag
 
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
Toto
 
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
Toto
 
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
 
Super méthode ! Marche nickel, merci beaucoup :)
0
visior64 > Toto
 
Merci ! Génial ! ça marche nickel !
0
Jisso
 
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   Statut Membre Dernière intervention   28
 
Merci bien, c'est exactement ce qu'il me fallait...
1
jcodeunpeu Messages postés 365 Date d'inscription   Statut Membre Dernière intervention   6
 
bonsoir,
ben oui, isDigit pareil, as-tu la doc ?
A+
0
Utilisateur anonyme
 
0
Keevkilla
 
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   Statut Membre Dernière intervention   28
 
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   Statut Membre Dernière intervention   73
 
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
PLIZ-HELP
 
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   Statut Membre Dernière intervention  
 
bonjour

essai ça:


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

a+
0