Problème avec un ensemble des entiers en java [Résolu/Fermé]

Signaler
Messages postés
10
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
25 janvier 2012
-
Messages postés
10
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
25 janvier 2012
-
Bonjour,

je veux faire ca m
 if(s.charAt(i)=[0.9]){
         return true;
  }
mais l'instruction [0.9]n'est pas juste je veux savoir comment la faire en java
avec l'instruction s.charat(i)=[0.9] je veux dire que la chaîne de caractère s ne contient que des chiffres
merci d'avance .

3 réponses

Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 858
Il faudrait que tu (re)apprennes les bases du langage Java !!!
Si tu ne sais pas comparer deux caractères c'est même pas la peine d'essayer de faire plus compliqué...

return s.charAt(i)>='0' && s.charAt(i)<='9';
Messages postés
10
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
25 janvier 2012

moi je veux comparer si une chaîne de caractère si elle ne contient que des double ou bien elle contient des caractère ou des caractères et des doubles
c'est pour ça je fais la boucle for + un instruction de condition comme ça :

public boolean verifier(String s){
          
            for(int i=0; i<s.length();i++){
                if(s.charAt(i)== un nombre double de 0 à 9 plus la virgule si elle  existe ){
                 n++;  
                }                     
            }
            if(s.length()==n){
                return true;
            }else{
                return false;
             
            }
}

mon problemme est comment expliquer en java la phrase : un nombre double de 0 à 9 plus la virgule si elle est existe .
Messages postés
16372
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
23 juillet 2021
2 858
Tu dois faire comme je l'ai mis plus haut, il faut juste lire !!!
s.charAt(i)>='0' && s.charAt(i)<='9'
Sauf que depuis tu as rajouté la condition virgule, il faut donc rajouter ce cas :
(s.charAt(i)>='0' && s.charAt(i)<='9') || s.charAt(i)=='.'
Remarque : en général pour faire ça on ne s'embête pas, on convertit directement en double avec Double.parseDouble(String s), et on récupère l'exception au besoin, ça évite d'avoir à gérer soi même tous les cas genre avoir une seule virgule, avoir éventuellement un + ou un - devant, accepter la notation scientifique etc...

try
{
    double d = Double.parseDouble(s);
    return true;
}
catch (Exception e)
{
    System.err.println(e);
    return false;
}
La confiance n'exclut pas le contrôle
Messages postés
10
Date d'inscription
mardi 24 janvier 2012
Statut
Membre
Dernière intervention
25 janvier 2012

merci kx l'utilisation d'une exception c'est la bonne solution