Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Yayel
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- conversion en int et catch de l'exception
Pour les raisons que tu cites (beauté du code, maintenance ...), je te conseille cette solution.
Déjà, je ne la trouve pas réellement compliquée : tu fais comme si la conversion allait bien se passer puis ensuite tu étudies les cas ou ça ne marche pas.
Ca donne un code très lisible et logique, non ?
Yayel
Bonjour,
Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- conversion en int et catch de l'exception
Pour les raisons que tu cites (beauté du code, maintenance ...), je te
conseille cette solution.
Déjà, je ne la trouve pas réellement compliquée : tu fais comme si la
conversion allait bien se passer puis ensuite tu étudies les cas ou ça
ne marche pas.
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- conversion en int et catch de l'exception
Pour les raisons que tu cites (beauté du code, maintenance ...), je te conseille cette solution.
Déjà, je ne la trouve pas réellement compliquée : tu fais comme si la conversion allait bien se passer puis ensuite tu étudies les cas ou ça ne marche pas.
Ca donne un code très lisible et logique, non ?
Yayel
MiXAO
Axel R. wrote:
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
C'est vraiment le cas idéal pour un try catch.
MiXAO
Axel R. wrote:
Bonjour,
Je recherche à savoir si une String que j'ai est un nombre ou pas.
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
C'est vraiment le cas idéal pour un try catch.
MiXAO
Marc Petit-Huguenin
Axel R. wrote:
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est "isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*) de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide 2. Verifier chaque char : Moins elegant, mais pourquoi pas. 3. Int et catch: Une abomination. Une exception est faite pour gerer des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque c'est l'un des deux cas possibles (int/pas int).
Axel R. wrote:
Bonjour,
Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est "isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*) de
ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide
2. Verifier chaque char : Moins elegant, mais pourquoi pas.
3. Int et catch: Une abomination. Une exception est faite pour gerer des
cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque c'est
l'un des deux cas possibles (int/pas int).
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est "isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*) de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide 2. Verifier chaque char : Moins elegant, mais pourquoi pas. 3. Int et catch: Une abomination. Une exception est faite pour gerer des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque c'est l'un des deux cas possibles (int/pas int).
MiXAO
Marc Petit-Huguenin wrote:
Axel R. wrote:
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est "isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*) de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide 2. Verifier chaque char : Moins elegant, mais pourquoi pas. 3. Int et catch: Une abomination. Une exception est faite pour gerer des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on a toutes les raisons de croire qu'une utilisation normal de cette fonction, c'est de lui passer une chaine représentant un entier. Si cette chaine n'est pas un entier, alors la fonction est employée de manière inhabituel; il y a donc exception et c'est le cas tout indiqué. Ou alors tous mes profs de facs sont des cons.
MiXAO
Marc Petit-Huguenin wrote:
Axel R. wrote:
Bonjour,
Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est
"isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*)
de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide
2. Verifier chaque char : Moins elegant, mais pourquoi pas.
3. Int et catch: Une abomination. Une exception est faite pour gerer des
cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque
c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on a
toutes les raisons de croire qu'une utilisation normal de cette
fonction, c'est de lui passer une chaine représentant un entier.
Si cette chaine n'est pas un entier, alors la fonction est employée de
manière inhabituel; il y a donc exception et c'est le cas tout indiqué.
Ou alors tous mes profs de facs sont des cons.
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est "isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*) de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide 2. Verifier chaque char : Moins elegant, mais pourquoi pas. 3. Int et catch: Une abomination. Une exception est faite pour gerer des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on a toutes les raisons de croire qu'une utilisation normal de cette fonction, c'est de lui passer une chaine représentant un entier. Si cette chaine n'est pas un entier, alors la fonction est employée de manière inhabituel; il y a donc exception et c'est le cas tout indiqué. Ou alors tous mes profs de facs sont des cons.
MiXAO
jocelyn
Je suis assez d'accord avec mixao.... Si on y reflechit bien, le traitement d'une exception depend tjrs d'un choix binaire: ca a marche ou non/ Le pb est donc plutot de savoir quelles est la frequence des cas exceptionnels.
Effectivement regexp est certainement tres elegant mais ca me parait sortir l'artillerie lourde pour pas grand chose. L'idee de la sous fonction... Pkoi pas mais ca peut se compliquer un peu si on désire vérifier que le nombre est question appartient bien à l'intervalle des int (par exemple). Et puis ca fait un peu ancienne prog.
PS: ca n'empeche pas qu'une proportion non negligeable de profs de fac sont des cons ^^
-- Celui qui lutte contre des monstres doit prendre garde, dans le combat, à ne pas devenir un monstre lui-même
Je suis assez d'accord avec mixao....
Si on y reflechit bien, le traitement d'une exception depend tjrs d'un choix
binaire:
ca a marche ou non/
Le pb est donc plutot de savoir quelles est la frequence des cas
exceptionnels.
Effectivement regexp est certainement tres elegant mais ca me parait sortir
l'artillerie lourde pour pas grand chose.
L'idee de la sous fonction... Pkoi pas mais ca peut se compliquer un peu si
on
désire vérifier que le nombre est question appartient bien à l'intervalle
des int (par exemple).
Et puis ca fait un peu ancienne prog.
PS: ca n'empeche pas qu'une proportion non negligeable de profs de fac sont
des cons ^^
--
Celui qui lutte contre des monstres doit prendre garde, dans le combat, à ne
pas devenir un monstre lui-même
Je suis assez d'accord avec mixao.... Si on y reflechit bien, le traitement d'une exception depend tjrs d'un choix binaire: ca a marche ou non/ Le pb est donc plutot de savoir quelles est la frequence des cas exceptionnels.
Effectivement regexp est certainement tres elegant mais ca me parait sortir l'artillerie lourde pour pas grand chose. L'idee de la sous fonction... Pkoi pas mais ca peut se compliquer un peu si on désire vérifier que le nombre est question appartient bien à l'intervalle des int (par exemple). Et puis ca fait un peu ancienne prog.
PS: ca n'empeche pas qu'une proportion non negligeable de profs de fac sont des cons ^^
-- Celui qui lutte contre des monstres doit prendre garde, dans le combat, à ne pas devenir un monstre lui-même
Marc Petit-Huguenin
MiXAO wrote:
Marc Petit-Huguenin wrote:
Axel R. wrote:
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est "isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*) de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide 2. Verifier chaque char : Moins elegant, mais pourquoi pas. 3. Int et catch: Une abomination. Une exception est faite pour gerer des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on a toutes les raisons de croire qu'une utilisation normal de cette fonction, c'est de lui passer une chaine représentant un entier. Si cette chaine n'est pas un entier, alors la fonction est employée de manière inhabituel; il y a donc exception et c'est le cas tout indiqué. Ou alors tous mes profs de facs sont des cons.
Oui, mais ici ca n'est pas le cas. La question est de tester si une chaine contient un nombre ou pas. Il y a donc deux reponses de meme poids: nombre ou pas nombre. Ca n'est pas la meme chose que d'utiliser Integer.parseInt pour convertir une chaine en nombre. La on s'attend a ce que la chaine soit un nombre, et la chaine incorrect est un cas exceptionnel.
Et, en depit de mon respect pour le corps enseignant et sa o combien difficile mission, tu t'expose a de serieuses deconvenues si tu t'imagine qu'ils - ou n'importe qui d'autre - possedent la connaissance ultime de n'importe quel sujet.
MiXAO
MiXAO wrote:
Marc Petit-Huguenin wrote:
Axel R. wrote:
Bonjour,
Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est
"isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*)
de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide
2. Verifier chaque char : Moins elegant, mais pourquoi pas.
3. Int et catch: Une abomination. Une exception est faite pour gerer
des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel
puisque c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on a
toutes les raisons de croire qu'une utilisation normal de cette
fonction, c'est de lui passer une chaine représentant un entier.
Si cette chaine n'est pas un entier, alors la fonction est employée de
manière inhabituel; il y a donc exception et c'est le cas tout indiqué.
Ou alors tous mes profs de facs sont des cons.
Oui, mais ici ca n'est pas le cas. La question est de tester si une chaine
contient un nombre ou pas. Il y a donc deux reponses de meme poids: nombre
ou pas nombre. Ca n'est pas la meme chose que d'utiliser Integer.parseInt
pour convertir une chaine en nombre. La on s'attend a ce que la chaine soit
un nombre, et la chaine incorrect est un cas exceptionnel.
Et, en depit de mon respect pour le corps enseignant et sa o combien
difficile mission, tu t'expose a de serieuses deconvenues si tu t'imagine
qu'ils - ou n'importe qui d'autre - possedent la connaissance ultime de
n'importe quel sujet.
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est "isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*) de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide 2. Verifier chaque char : Moins elegant, mais pourquoi pas. 3. Int et catch: Une abomination. Une exception est faite pour gerer des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on a toutes les raisons de croire qu'une utilisation normal de cette fonction, c'est de lui passer une chaine représentant un entier. Si cette chaine n'est pas un entier, alors la fonction est employée de manière inhabituel; il y a donc exception et c'est le cas tout indiqué. Ou alors tous mes profs de facs sont des cons.
Oui, mais ici ca n'est pas le cas. La question est de tester si une chaine contient un nombre ou pas. Il y a donc deux reponses de meme poids: nombre ou pas nombre. Ca n'est pas la meme chose que d'utiliser Integer.parseInt pour convertir une chaine en nombre. La on s'attend a ce que la chaine soit un nombre, et la chaine incorrect est un cas exceptionnel.
Et, en depit de mon respect pour le corps enseignant et sa o combien difficile mission, tu t'expose a de serieuses deconvenues si tu t'imagine qu'ils - ou n'importe qui d'autre - possedent la connaissance ultime de n'importe quel sujet.
MiXAO
Marc Petit-Huguenin
jocelyn wrote:
Je suis assez d'accord avec mixao.... Si on y reflechit bien, le traitement d'une exception depend tjrs d'un choix binaire: ca a marche ou non/ Le pb est donc plutot de savoir quelles est la frequence des cas exceptionnels.
L'enonce du probleme est clair: "Je recherche à savoir si une String que j'ai est un nombre ou pas." Il y a pas de condition exceptionnelle ici.
Effectivement regexp est certainement tres elegant mais ca me parait sortir l'artillerie lourde pour pas grand chose.
Artillerie lourde? Je ne pense pas:
boolean nombre = chaine.matches("d+");
L'idee de la sous fonction... Pkoi pas mais ca peut se compliquer un peu si on désire vérifier que le nombre est question appartient bien à l'intervalle des int (par exemple). Et puis ca fait un peu ancienne prog.
PS: ca n'empeche pas qu'une proportion non negligeable de profs de fac sont des cons ^^
jocelyn wrote:
Je suis assez d'accord avec mixao....
Si on y reflechit bien, le traitement d'une exception depend tjrs d'un choix
binaire:
ca a marche ou non/
Le pb est donc plutot de savoir quelles est la frequence des cas
exceptionnels.
L'enonce du probleme est clair: "Je recherche à savoir si une String que
j'ai est un nombre ou pas." Il y a pas de condition exceptionnelle ici.
Effectivement regexp est certainement tres elegant mais ca me parait sortir
l'artillerie lourde pour pas grand chose.
Artillerie lourde? Je ne pense pas:
boolean nombre = chaine.matches("\d+");
L'idee de la sous fonction... Pkoi pas mais ca peut se compliquer un peu si
on
désire vérifier que le nombre est question appartient bien à l'intervalle
des int (par exemple).
Et puis ca fait un peu ancienne prog.
PS: ca n'empeche pas qu'une proportion non negligeable de profs de fac sont
des cons ^^
Je suis assez d'accord avec mixao.... Si on y reflechit bien, le traitement d'une exception depend tjrs d'un choix binaire: ca a marche ou non/ Le pb est donc plutot de savoir quelles est la frequence des cas exceptionnels.
L'enonce du probleme est clair: "Je recherche à savoir si une String que j'ai est un nombre ou pas." Il y a pas de condition exceptionnelle ici.
Effectivement regexp est certainement tres elegant mais ca me parait sortir l'artillerie lourde pour pas grand chose.
Artillerie lourde? Je ne pense pas:
boolean nombre = chaine.matches("d+");
L'idee de la sous fonction... Pkoi pas mais ca peut se compliquer un peu si on désire vérifier que le nombre est question appartient bien à l'intervalle des int (par exemple). Et puis ca fait un peu ancienne prog.
PS: ca n'empeche pas qu'une proportion non negligeable de profs de fac sont des cons ^^
MiXAO
Marc Petit-Huguenin wrote:
MiXAO wrote:
Marc Petit-Huguenin wrote:
Axel R. wrote:
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est "isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*) de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide 2. Verifier chaque char : Moins elegant, mais pourquoi pas. 3. Int et catch: Une abomination. Une exception est faite pour gerer des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on a toutes les raisons de croire qu'une utilisation normal de cette fonction, c'est de lui passer une chaine représentant un entier. Si cette chaine n'est pas un entier, alors la fonction est employée de manière inhabituel; il y a donc exception et c'est le cas tout indiqué. Ou alors tous mes profs de facs sont des cons.
Oui, mais ici ca n'est pas le cas. La question est de tester si une chaine contient un nombre ou pas.
En effet, dans ce contexte et en relisant le post initial d'Axel, tu as raison.
MiXAO
Marc Petit-Huguenin wrote:
MiXAO wrote:
Marc Petit-Huguenin wrote:
Axel R. wrote:
Bonjour,
Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est
"isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*)
de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide
2. Verifier chaque char : Moins elegant, mais pourquoi pas.
3. Int et catch: Une abomination. Une exception est faite pour gerer
des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel
puisque c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on
a toutes les raisons de croire qu'une utilisation normal de cette
fonction, c'est de lui passer une chaine représentant un entier.
Si cette chaine n'est pas un entier, alors la fonction est employée de
manière inhabituel; il y a donc exception et c'est le cas tout
indiqué. Ou alors tous mes profs de facs sont des cons.
Oui, mais ici ca n'est pas le cas. La question est de tester si une
chaine contient un nombre ou pas.
En effet, dans ce contexte et en relisant le post initial d'Axel, tu as
raison.
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est "isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*) de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide 2. Verifier chaque char : Moins elegant, mais pourquoi pas. 3. Int et catch: Une abomination. Une exception est faite pour gerer des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on a toutes les raisons de croire qu'une utilisation normal de cette fonction, c'est de lui passer une chaine représentant un entier. Si cette chaine n'est pas un entier, alors la fonction est employée de manière inhabituel; il y a donc exception et c'est le cas tout indiqué. Ou alors tous mes profs de facs sont des cons.
Oui, mais ici ca n'est pas le cas. La question est de tester si une chaine contient un nombre ou pas.
En effet, dans ce contexte et en relisant le post initial d'Axel, tu as raison.
MiXAO
Cédric Chabanois
Je ne sais pas quelle est la façon la plus élégante de faire mais le plus efficace est probablement d'utiliser Integer.parseInt
Les regexp ne sont en standard qu'avec le JDK >= 1.4 et utiliser le jar de regexp de Apache pour çà bof ...
Maintenant, si ce n'est pas assez élégant, tu peux toujours l'encapsuler dans une méthode boolean isInteger(String candidate)
Cédric
Marc Petit-Huguenin wrote:
MiXAO wrote:
Marc Petit-Huguenin wrote:
Axel R. wrote:
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est "isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*) de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide 2. Verifier chaque char : Moins elegant, mais pourquoi pas. 3. Int et catch: Une abomination. Une exception est faite pour gerer des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on a toutes les raisons de croire qu'une utilisation normal de cette fonction, c'est de lui passer une chaine représentant un entier. Si cette chaine n'est pas un entier, alors la fonction est employée de manière inhabituel; il y a donc exception et c'est le cas tout indiqué. Ou alors tous mes profs de facs sont des cons.
Oui, mais ici ca n'est pas le cas. La question est de tester si une chaine contient un nombre ou pas.
En effet, dans ce contexte et en relisant le post initial d'Axel, tu as raison.
MiXAO
Je ne sais pas quelle est la façon la plus élégante de faire mais le
plus efficace est probablement d'utiliser Integer.parseInt
Les regexp ne sont en standard qu'avec le JDK >= 1.4 et utiliser le jar
de regexp de Apache pour çà bof ...
Maintenant, si ce n'est pas assez élégant, tu peux toujours l'encapsuler
dans une méthode boolean isInteger(String candidate)
Cédric
Marc Petit-Huguenin wrote:
MiXAO wrote:
Marc Petit-Huguenin wrote:
Axel R. wrote:
Bonjour,
Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est
"isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple
(*) de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide
2. Verifier chaque char : Moins elegant, mais pourquoi pas.
3. Int et catch: Une abomination. Une exception est faite pour gerer
des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel
puisque c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on
a toutes les raisons de croire qu'une utilisation normal de cette
fonction, c'est de lui passer une chaine représentant un entier.
Si cette chaine n'est pas un entier, alors la fonction est employée
de manière inhabituel; il y a donc exception et c'est le cas tout
indiqué. Ou alors tous mes profs de facs sont des cons.
Oui, mais ici ca n'est pas le cas. La question est de tester si une
chaine contient un nombre ou pas.
En effet, dans ce contexte et en relisant le post initial d'Axel, tu as
raison.
Je ne sais pas quelle est la façon la plus élégante de faire mais le plus efficace est probablement d'utiliser Integer.parseInt
Les regexp ne sont en standard qu'avec le JDK >= 1.4 et utiliser le jar de regexp de Apache pour çà bof ...
Maintenant, si ce n'est pas assez élégant, tu peux toujours l'encapsuler dans une méthode boolean isInteger(String candidate)
Cédric
Marc Petit-Huguenin wrote:
MiXAO wrote:
Marc Petit-Huguenin wrote:
Axel R. wrote:
Bonjour, Je recherche à savoir si une String que j'ai est un nombre ou pas.
Dans les solutions compliquées que j'ai :
- test avec une regexp
- conversion en int et catch de l'exception
- sous fonction qui vérifie que chaque "char" qui la compose est "isDigit"
Existe t'il une solution plus simple ? Quelle est la plus simple (*) de ces 3 solutions ?
Merci,
Axel
(*) beauté du code, facilité de maintenance etc.
Dans l'ordre du meilleur au plus mauvais:
1. Regex : Elegant et rapide 2. Verifier chaque char : Moins elegant, mais pourquoi pas. 3. Int et catch: Une abomination. Une exception est faite pour gerer des cas, euh, exceptionnels. Ici ca n'est pas un cas exceptionnel puisque c'est l'un des deux cas possibles (int/pas int).
Lorsqu'on rédige une *fonction de conversion de chaine en entier*, on a toutes les raisons de croire qu'une utilisation normal de cette fonction, c'est de lui passer une chaine représentant un entier. Si cette chaine n'est pas un entier, alors la fonction est employée de manière inhabituel; il y a donc exception et c'est le cas tout indiqué. Ou alors tous mes profs de facs sont des cons.
Oui, mais ici ca n'est pas le cas. La question est de tester si une chaine contient un nombre ou pas.
En effet, dans ce contexte et en relisant le post initial d'Axel, tu as raison.