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 :

separer les champs de l'adresse ip [FAQ]


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut separer les champs de l'adresse ip
    Bonjour
    Je veux comparer deux adresse ip une adresse se trouve dans la base des regles du firewall et l'autre du paquet.
    mais le pb est que les champs de l'adresse sont séparé de "." et quand j'écris le code suivant :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    System.out.println(" =============Mon test ===================== " ); 
    ligne2="10.10.10.10";
    champ_ligne2=ligne2.split(".");
    System.out.println(" champ1 = " +champ_ligne2[0]);
    System.out.println(" champ2 = " +champ_ligne2[1]);
    System.out.println(" =============Mon test ===================== " );
    il m'affiche cette erreur :
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
    at ManipText.main(ManipText.java:22)

    J'ai compris qu'il n'accepte pas le séparateur "." parceque je l'ai testé avec séparateur ":", il m'affiche mon résultat, mais le problème est que toutes les adresses ont des champs séparépar le point alors comment récupérer les différents champs.

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Bonjour.
    split prend une Expression règulière comme paramètre, et le "." est un symbole spécial pour les expressions règulières. Il faut le despécisaliser avec un "\".

    Bonne chance.

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut autre probleme
    Je m'ai fait mais il me retourne une erreur alors j'ai utilisé StringTokenizer et ca marche. Mais ce que je veux est de faire un appel à une fonction qui utilise ce traitement comme suit

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    public boolean comparaison (String adresseRegle, String adressePaquet){
    //declararion des variables 
    int [] adresseR= new int[4];
    int [] adresseP= new int[4];
    boolean test;
    test =false;
    //traitement tableau
    StringTokenizer tk = new StringTokenizer(adresseRegle, ".");
    String champs1 = tk.nextToken();
    adresseR[0]=Integer.parseInt(champs1);
    String champs2 = tk.nextToken();
    adresseR[1]=Integer.parseInt(champs2);
    String champs3 = tk.nextToken();
    adresseR[2]=Integer.parseInt(champs3);
    String champs4 = tk.nextToken();
    adresseR[3]=Integer.parseInt(champs4);
    for (int j=0;j<4;j++){
    System.out.println(" champs adresse regle N°" +j+" est ="+adresseR[j]);
    }
    return test;}
     et dans la classe main 
    public static void main(String[] args) {
    ComparaisonAdresse CompareAdr= new ComparaisonAdresse();
    adresseRegle="10.10.1.1";
    adressePaquet="10.10.1.1";
    compareip=CompareAdr.comparaison(adresseRegle, adressePaquet);
    System.out.println("comparaison ="+ compareip);
    }
    mais il m'affiche
    Exception in thread "main" java.lang.NullPointerException
    at java.util.StringTokenizer.<init>(StringTokenizer.java:182)
    at java.util.StringTokenizer.<init>(StringTokenizer.java:204)
    at ComparaisonAdresse.comparaison(ComparaisonAdresse.java:37)
    at ComparaisonAdresse.<init>(ComparaisonAdresse.java:16)
    at ComparaisonAdresse.main(ComparaisonAdresse.java:20)
    c quoi le probleme surtout que l'ai essayé dans la classe main et ca marche

  4. #4
    Membre expérimenté Avatar de Amine_sas
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    245
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 245
    Par défaut
    Salut,

    J'ai testé la méthode comparaison sans la changer et avec les mêmes paramètres et elle n'a pas posé de problème.
    L'erreur se trouve peut être autre part.

  5. #5
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    StringTokenizer est une classe complètement désuette: elle reste dans l'API pour des raisons de compatibilité, mais il faut pour les programmes plus récents utiliser "split()".

    Creuse donc un peu du côté de l'indication de djo.mos.

    Allez, je te souffle le complément de réponse...
    - "." est un caractère spécial des expressions régulières et il faut l'échapper => "\." (déjà dit)
    - mais "\" est un caractère spécial des chaînes de caractères en java => il faut l'échapper pour avoir un "vrai \" dans la chaîne de caractères finale => "\\."

    Bilan, la solution que tu cherches est:

    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  6. #6
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 6
    Par défaut Merci
    Merci pour votre réponse.
    En effet ma faute est ailleurs, j'ai fait appel au constructeur de ma classe ce qui fait qu'il accede que sa initialisation de variable qui est null donc il m'affiche pas le resultat.
    Merci encore une fois

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

Discussions similaires

  1. [OL-2010] Enlever les adresses en doublons dans les champs cc ou cci
    Par Daejung dans le forum VBA Outlook
    Réponses: 9
    Dernier message: 06/03/2014, 22h04
  2. separer les valeurs d'un champ
    Par louarn dans le forum Outils
    Réponses: 5
    Dernier message: 05/10/2007, 14h41
  3. afficher tous les champs d'une table
    Par julio84 dans le forum ASP
    Réponses: 8
    Dernier message: 19/01/2005, 10h31
  4. tri avec les champs vides en dernier
    Par r-zo dans le forum Requêtes
    Réponses: 11
    Dernier message: 03/09/2003, 13h40
  5. [CR9] Bug avec les champs à valeur vide ?
    Par Djob dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 15/07/2003, 21h21

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