Salut,
En fait, je cherche une fonction Java qui me permette de dire si ma chaîne "String" contient que des chiffres ou pas.
Cela existe-t-il ?
Merci d'avance.
Salut,
En fait, je cherche une fonction Java qui me permette de dire si ma chaîne "String" contient que des chiffres ou pas.
Cela existe-t-il ?
Merci d'avance.
je ne penses pas que ca existe tel quel, mais il existe une méthode de la classe Character qui fait ca:
il faut donc faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part Chararacter.isDigit(char c)
Ou alors, tenter de la transformer en Integer, et si il y a une erreur, c'est que ca contient pas que des chiffres, mais je penses que c'est bcp moins efficace.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 String str="124578"; char cs = str.toCharArray(); for ( int i = 0; i< cs.length;i++){ if ( ! Character.isDigit(cs[i)]) return false; } return true;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 String str = "12345"; try{ int i = Integer.parseInt(str); return true; }catch(Exception e){ return false; }
Je ne pense pas que ca existe mais tu peux la créer en essayant de creer un Integer a partir de cette chaine, si aucune exception n'est levée c'est qu'il n'y a que des chiffres sinon il n'y a pas que des chiffres !!! ex :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public boolean justNumber(String s) { boolean ret = false ; try{ Integer i = new Integer(s) ; ret = true ; //tout c'est bien passé } catch( Exception e ) { ret = false ; } //tiens une erreur return ret ; }
salut,
en utilisant une expression ordinaire, tu peux savoir si ta chaine contient au moins 1 chiffre.
l'expression ordinaire [^0-9]*[0-9]+.*, correspond à une chaine contenant 0 ou plusieurs caractères non numérique, 1 ou plusieurs caractères numériques, puis 0 ou plusieurs caractères quelconques.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 boolean containANumber(String s) { return s.matches("[^0-9]*[0-9]+[^0-9]*"); }
exemple de réponses :
"bonjour" --> false car la chaine correspond seulement à [^0-9]*
"K2000" ---> true : K => [^0-9]*, 2 => [0-9]+, 000 => .*
"2 paysans" --> true : "" => [^0-9]*, 2 => [0-9]+, " paysans" => .*
![]()
j'ai pas testé, j'ai jamais utilisé les expressions ordinaires, mais ça devrait marcher
En fait, si j'ai bien compris, c'est encore plus simple que ça, car il s'agit de contrôler si une chaîne de caractères ne contient que des chiffres:
- Colargol
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 boolean containsOnlyNumbers(String s) { return s.matches("[0-9]*"); }
exact, j'avais zappé le "que" du post initial.
mais dans ce cas, c'est un + et non une * ----> [0-9]+Envoyé par david71
sinon tu autorises la chaîne vide.
Ouais, d'ailleurs je vais aussi m'y mettre, histoire de monter mon post count rapidement![]()
postCount++;
façon les posts inutiles sont effacés régulièrement...
Intéressant de pouvoir utiliser les expressions ordinaires. Ca fonctionne.
Merci.
Partager