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 :

Découper une chaine de caractère


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut Découper une chaine de caractère
    Bonjour, je vous explique mon cas.
    J'ai une chaine de caractère que je récupère dans mon LDAP
    CN=toto,OU=Manager,DC=Compagnie,DC=fr

    Je souhaite récupérer le mot "toto". donc j'ai réalisé le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	public String[] getGroupsNames() {
    		if (null == memberOf || memberOf.size() == 0) return null;
     
    		String[] names = new String[memberOf.size()];
    		for (int i=0; i<memberOf.size(); i++) {
    			String name = memberOf.get(i).substring(3,4); 
     
                            //extraction du nom du groupe depuis la chaine
                            CN=toto,OU=Manager,DC=Compagnie,DC=fr
                            names[i] = name;
    		}
    		return names;
    	}
    Quand j'exécute mon application j'obtiens bien "toto" mais imaginons maintenant que le CN soit plus grand ex: CN=tatatititoto,OU=Manager,DC=Compagnie,DC=fr

    lorsque j'exécute ceci, j'obtiens "tata" car mon substring ne prend que 4 caractères!

    Comment faire pour que mon substring puisse prendre entièrement le CN peut importe le nombre de caractères ?

    Je vous remercie d'avance

  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 : 44
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Que contient la variable "membersOf" ? Comment est-elle construite ? J'imagine que c'est un ArrayList ?
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut
    "membersOf" représente un attribut LDAP qui me permet de récupérer la liste des groupes d'un utilisateur. C'est donc un arraylist car un utilisateur peut être membre de plusieurs groupes.

  4. #4
    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 : 44
    Localisation : France

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Voici une possibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    //le parametre est de type "CN=toto,OU=Manager,DC=Compagnie,DC=fr"
    public String getUser( String chaine )
    {
      for( String element : chaine.split( "," ) )
      {
        if( element.substring( 0, element.indexOf( '=' ) ).equals( "CN" ) )
        {
          return element.substring( element.indexOf( '=' ) + 1 );
        }
      }
      return null;
    }
    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.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 8
    Par défaut
    En réalité, je travail pour une société en tant que stagiaire et mon patron souhaiterais que j'utilise sa méthode.

    c'est à dire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public String[] getGroupsNames() {
    		if (null == memberOf || memberOf.size() == 0) return null;
     
    		String[] names = new String[memberOf.size()];
    		for (int i=0; i<memberOf.size(); i++) {
    			String name = memberOf.get(i).substring(3,4); 
     
                            //extraction du nom du groupe depuis la chaine
                            CN=toto,OU=Manager,DC=Compagnie,DC=fr
                            names[i] = name;
    		}
    		return names;
    	}

    Existe t-il un moyen avec la méthode affichait ci-dessus ?

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 764
    Par défaut
    Citation Envoyé par dos757 Voir le message
    En réalité, je travail pour une société en tant que stagiaire et mon patron souhaiterais que j'utilise sa méthode.
    Euh...
    Soit tu utilises sa méthode (nom = chaîne comprise entre le 3ème et le 7ème caractère), et donc tu ne récupères que les 4 premières lettres du nom indépendamment de sa longueur réelle.
    Soit tu réécris la méthode de manière plus "intelligente" (nom = tout ce qui est compris entre le signe '=' et le prochain signe ',') en t'inspirant par exemple du code proposé par dinobogan. Tu peux évidemment t'arranger pour conserver la même méthode getGroupsNames avec la même signature...

    Ce qui est sûr c'est que tu ne pourras pas modifier le comportement de ton code sans à un moment donné modifier le code Si la méthode de ton chef ne donne pas le résultat attendu, c'est qu'elle est mal implémentée et donc qu'il faut la corriger, chef ou pas chef.

Discussions similaires

  1. Bash - Découper une chaine de caractères
    Par nicolas.pissard dans le forum Shell et commandes GNU
    Réponses: 13
    Dernier message: 16/12/2014, 13h18
  2. Découper une chaine de caractères
    Par momomafioso dans le forum ASP.NET
    Réponses: 1
    Dernier message: 28/06/2007, 11h11
  3. [SQ2K] Découper une chaine de caractères
    Par maitrebn dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/04/2007, 19h22
  4. Réponses: 6
    Dernier message: 15/04/2007, 13h06
  5. [VBA] Découper une chaine de caractères
    Par rantanplan81 dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/04/2007, 15h26

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