IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Vérifier des intervales de caractères


Sujet :

avec Java

  1. #1
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut Vérifier des intervales de caractères
    Bonjour,

    je dois vérifier des intervalles de caractères du type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Espace
    (caractere == 0x20) ||
    // ' ( )
    ((caractere > 0x26) && (caractere < 0x2A)) ||
    // @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [
    ((caractere > 0x3F) && (caractere < 0x5C)) ||
    ...
    bien sûr, il des caractères non imprimable.

    j'ai fait un if, et j'ai 50 lignes et PMD râle (ce que je comprends).

    J'ai essayé du côté des expressions rationnelles mais je ne trouve rien.

    Merci de votre aide

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Attention : ce genre de code n'est pas forcément crado. Quelque soit la technique utilisée, tu vas devoir à un moment donné établir la liste de tous les intervalles de caractères, que ce soit dans un fichier de configuration, une structure quelconque ou un ensemble de "if".
    Il y a deux possibilités : soit tu peux factoriser tous les intervalles pour diminuer leur nombre, soit tu ne peux définitivement pas car la factorisation n'apporte aucune simplification.
    Est-ce que ces intervalles sont amenés à évoluer dans le temps ? Si oui, les "if" sont à bannir. Il faut passer par un fichier de configuration, ou alors un tableau en début de code par exemple qui est facilement modifiable, ou une autre structure.
    Si la liste d'intervalles est figée, fixée et immuable (sauf incident nucléaire), alors les "if" peuvent être une bonne solution, et irréprochable côté performance.

    Dans tout les cas, celui qui râle doit te donner de vrais motifs.

    PS : que signifie PMD ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut
    Bonjour,

    merci de la réponse.
    Les caractères ne sont pas amené à évoluer (enfin j'espère). Donc je vais rester sur le if.

    Pour PMD, c'est le contrôleur de qualité de code que j'utilise (http://pmd.sourceforge.net/ ou http://fr.wikipedia.org/wiki/PMD_%28logiciel%29)

    Je cherchais du côté des expressions relationnelles mais Java ne supporte pas la notation "\x20", c'est dommage.

  4. #4
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    PS : que signifie PMD ?
    PMD est un outil d'analyse de qualité de code . Un peu trop frileux à mon goût, parfois, mais un if de 50 lignes, 'faut pas déconner, c'est pas terrible parce que c'est un if de 50 lignes.

    Ce que je ferais, moi, c'est comme tu proposes, éclater la condition en petits morceaux, une List, un tableau, ou quelque chose de ce genre. Puis vérifier chaque condition avec une boucle for.
    Éventuellement construire une grosse expression régulière à partir de cet ensemble de conditions. C'est plus risqué niveau bug mais ça se teste assez bien, et c'est très bon niveau performances.

    EDIT : grillé . Bon, ceci étant dit :

    Citation Envoyé par bubulemaster Voir le message
    Je cherchais du côté des expressions relationnelles mais Java ne supporte pas la notation "\x20", c'est dommage.
    Java supporte "\u0020"
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Points : 681
    Points
    681
    Par défaut
    Citation Envoyé par thelvin Voir le message
    Java supporte "\u0020"
    Voilà ce qui me manquait. Du coup avec les RegEx c'est plus simple.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Vérifier si des valeurs appartiennent à des intervalles
    Par omnawfel dans le forum Excel
    Réponses: 2
    Dernier message: 09/02/2014, 20h21
  2. [E-03] Vérifier que tous les caractères sont des chiffres
    Par neiluj26 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/03/2009, 11h48
  3. [Javascript] Afficher du texte avec des intervalles
    Par Invité4 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/01/2005, 21h29
  4. Passage des chaînes de caractères à une application CGI
    Par Thom@s dans le forum Composants VCL
    Réponses: 10
    Dernier message: 03/12/2004, 00h13
  5. Adresse des polices de caractères dans la RAM video ?
    Par Anonymous dans le forum x86 16-bits
    Réponses: 5
    Dernier message: 27/05/2002, 17h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo