Bonjour,
ce code test si 'age' est un entier positif mais "matches("^\\s*\\d+\\s*$")" est une methode javascript.
Je cherche l'équivalent pour les types String java
merci.
if (!age.matches("^\\s*\\d+\\s*$"))
merci!
Version imprimable
Bonjour,
ce code test si 'age' est un entier positif mais "matches("^\\s*\\d+\\s*$")" est une methode javascript.
Je cherche l'équivalent pour les types String java
merci.
if (!age.matches("^\\s*\\d+\\s*$"))
merci!
Salut,
tu veux savoir si une chaine contient un entier positif ??
Code:
1
2
3
4
5
6
7
8
9
10 try { monInt = Integer.parseInt(maChaine); // ici la chaine contien un entier donc : if(monInt >= 0) { // maChaine contient bien un entier positif } } catch (NumberFormatException ex){ // si tu es ici, ta chaine ne contient pas un entier }
Je comprends pas bien..
Tu veux savoir si les données rentrées sont positives?
Tu peux utiliser la classe StringTokenizer (voir ici )
Elle te permet de déterminer un délimiteur et de ressortir tes données... T'as plus qu'à les tester ensuite..
J'espère que ca peut t'aider
Ben depuis la version 1.4 de Java il faut faire :
Ce que tu viens d'ecrire en fait :)Code:
1
2 if (!age.matches("^\\s*\\d+\\s*$"))
que pense tu de çà ?
ensuite tu n'as plus qu'à tester sa supériorité à 0 si tu obtiens un entier.Code:monEntier = Integer.parseInt(maString) <-- il faut gérer le ParseException
j'ai JDK 1.5 mais if (!age.matches("^\\s*\\d+\\s*$")) ne fonctionne pas
Cela ne compile pas ou cela ne marche pas a l'execution ? A premiere vue je ne vois aucun probleme mais je n'ai pas utilise les regex du JDK depuis un moment. Verifie la syntaxe avec la doc des classes Pattern et Matcher.
Ceci devrait surement aller ; ou Sinon :Code:
1
2
3
4
5
6
7
8 final Pattern patter = Pattern.compile("^\\s*\\d+\\s*$"); Matcher mat = pattern.matcher(age.toString()); if (!mat.matches()) { // c'est OK } else { // Erreur , entier non positif }
Code:
1
2
3
4
5
6
7
8
9 try { int i = Integer.parseInt(age.toString()) ; if ( i <= 0 ) { // entier pas positif } } ( catch Exception e) { // pas entier }
euh moi je fais tout connement :
pas besoin d'exceptions ^^Code:
1
2
3
4
5
6 if(chaine.matches("[0-9]+")){ // C'est un entier positif int entier=Integer.parseInt(chaine); }else{ // Ce n'est pas un entier positif }
Skero > Ouai ça peut le faire aussi mais il me semble que ça ne gère l'élimination des caractères blancs en début et fin de chaine tel que "^\\s*\\d+\\s*$"
Et je viens de tester : si on ajouter des caractères blancs ( espace pour mon exemple ), on se prend un NumberFormatException.