Est ce que qlq1 connais par hasard, un moyen detester si un caractere fait partie de : ! " # $ % & ‘ ( ) * + , -. / : ; <=> ? @ [ \ ] _ { } ^.
qlq chose comme isdigits()
ça m'ebete de faire 14000 comparaison :evil:
merki
Version imprimable
Est ce que qlq1 connais par hasard, un moyen detester si un caractere fait partie de : ! " # $ % & ‘ ( ) * + , -. / : ; <=> ? @ [ \ ] _ { } ^.
qlq chose comme isdigits()
ça m'ebete de faire 14000 comparaison :evil:
merki
si tu considère tous les carracteres ormis les lettres et les chiffres peut-etre que la methode isLetterOrDigit de la classe Character pourra d'aider.
Sans vouloir dire de bétise, je crois que ce n'est pas possible, à moins que tu crée toi même une méthode qui fait le travail en prenant 2 chaines de caractères en argument (ça te permettra plus tard de détecter si d'autres chaines ou caractères sont présent.... Ça te fait quand même 50 comparaisons à faire ! :x
Cherches sur le forum, je sais qu'il y a une réponse qui traite d'un sujet plus ou moins similaire qui permettait de trouver si une sous-chaine est présente dans une autre chaine.
Bon courage.
Ton besoin me semble un peu trop spécifique, à moins que l'ensemble que tu donnes est :
?Citation:
{ tous les caractères } - { les caractères de contrôle } - { les caractères alphanumérique }
auquel cas :
Code:
1
2
3 public boolean isStrangeCharacter(char c) { return !Character.isISOControl(c) && !Character.isLetterOrDigit(c); }
A l'aide des expressions régulières, tu peux le faire facilement non ? Il y a des classes de caractères prédéfinies :
Donc tu fais :Code:\p{Punct} Punctuation: One of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
Non ?Code:
1
2 if (taString.matches("^\\p{Punct}$")) ....
bein en fait j'ai pas choisit cette liste de caracteres,
mais je travail sur une migration de code "forté" uds vers java, et en uds y a une methode isPunct() qui detecte les caracteres cité en haut ...
je crois que je vais considerer comme punct tout les caracteres qui ne sont ni lettre ni chiffre :( en esperant que ça fera l'affaire
merci à vous tous ;)
ah oui pas bete les expr regulieres
Salut,
Même sans expressions régulière ce n'est pas bien méchant comme méthode :
a++Code:
1
2
3
4
5
6
7
8
9 private static final char[] punctList = "#$%&()*+,-./:;<=>?@[\\]_{}^".toCharArray(); public static boolean isPunct(char c) { for (int i=0; i<punctList.length; i++) { if ( c==punctList[i]) return true; } return false; }
et? :wink:Code:String.indexOf(int ch);
tu peux utiliser le code ASCII, par exple tous ces caracteres ! " # $ % & ‘ ( ) * + , -. / sont entre 33 et 46, tu peux donc faire des comparaisons par intervalles, tu en auras pour 3 comparaisons et c'est bcp plus simple com ça, enfin c mon avis :wink: