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

Langage Java Discussion :

[If] successifs avec et/ou lequel


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    265
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 265
    Par défaut [If] successifs avec et/ou lequel
    Bonjour a tous.
    J'ai une méthode avec plusieurs paramètres à tester. Je dois vérifier s'ils sont nulls et différent d'une chaine vide alors je peux les concaténer. Comment dois-je procéder ???
    Laquelle est la meilleur implémentation de votre point de vue???
    Par exemple

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
     
    private static void MaMethodeConcat(String param1, String param2, String param3)
    {
    String tampon1 = "";
    if(((!("").equals(param1)) && !param1.equals(null)))
    {
    tampon1 += param1;	
    }
    if(((!("").equals(param2)) && !param2.equals(null)))
    {
    tampon1 += param2;	
    }
    if(((!("").equals(param3)) && !param3.equals(null)))
    {
    tampon1 += param3;	
    }
     
    System.out.println(tampon1);
    }
     
    private static void MaMethodeConcatAlternative(String param1, String param2, String param3)
    {
    String tampon1 = "";
    if((((!("").equals(param1)) && !param1.equals(null))  &&((!("").equals(param2)) && (!param2.equals(null)))) 
    && ((!("").equals(param3)) && (!param3.equals(null))))
    {
    tampon1 += param1;	
    tampon1 += param2;
    tampon1 += param3;
    }
    }
     
    public static void main (String[] args)
    {
    .......	
    }
    En vous remerciant à l'avance.

    Cordialement

  2. #2
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Les deux ne font pas la même chose ....
    Au passage, pourquoi tester non vide pour concaténer ??
    Et une dernière chose : les conventions de nommage c'est bien !

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    265
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 265
    Par défaut
    Merci pour les conseils on me fait souvent des reproches sur ces conventions de nommage, aurais tu un site en français qui en parle stp ???
    Je sais qu'il y a une petite erreur sur la méthode MaMethodeConcatAlternative mais en gros elle font la même chose c'est-à-dire concatener.
    Pour répondre à ta question l'obligation que j'ai et de tester à la fois nullite, et la chaine vide, c'est bizarre mais c'est comme ça.
    On m'a parler de l'utilisation de stringbuffer que j'ai oublié de mettre dans le message orginal. Qu'es ce qu'on gagne de plus??? au niveau des performances???

    En vous remerciant à l'avance.

  4. #4
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Par défaut
    Euh ... en français non j'ai rien sur les conventions de nommage mais devrait pouvoir être ton ami.
    Une String est en Java "figée", donc en fait quand tu écrit
    où a,b et c sont des String
    il fait tout seul (il me semble)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    a = (new StringBuffer(b)).append(c).toString();
    Quand tu utilises toi le StringBuffer c'est plus optimisé ça évite la création de cet objet à chaque fois...

    Au passage j'avais zappé mais pour tester la nullité c'est ==null et non .equals(null) ...

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 109
    Par défaut
    Attention :
    est un bug : si param vaut null, ca déclenche une exception. Il faut faire

  6. #6
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    265
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 265
    Par défaut
    En fait ma question fondamentale c'est si par exemple on doit tester plusieurs arguments qui ne doivent pas être null et surtout pas égale à une chaine vide.
    L'objectif apres est de concatener les trois paramètres dans une même chaine.

    Fâut-il tester chaque argument séparèment avec son If tout seul, ou on peut tester les trois arguments dans un même If. Laquelle est plus préfèrable???
    Si vous auriez des exemples s'il vous plait.


    Cordialement

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par smutmutant2003
    Merci pour les conseils on me fait souvent des reproches sur ces conventions de nommage, aurais tu un site en français qui en parle stp ???
    Pensez à consulter les cours et tutoriels Java du site : Guide francophone des conventions de codage pour la programmation en langage Java

    Citation Envoyé par smutmutant2003
    Je sais qu'il y a une petite erreur sur la méthode MaMethodeConcatAlternative mais en gros elle font la même chose c'est-à-dire concatener.
    Mais elle ont deux comportement différent... donc c'est dur de t'aider si on ne sait pas ce qui doit être obtenu en réalité (un exemple de donnée en entrée et le resultat souhaité pourrait être utile).


    Citation Envoyé par smutmutant2003
    On m'a parler de l'utilisation de stringbuffer que j'ai oublié de mettre dans le message orginal.
    Pas la peine d'écrire si gros... on n'est pas aveugle

    Citation Envoyé par smutmutant2003
    Qu'es ce qu'on gagne de plus??? au niveau des performances???
    Comment concatener des chaînes de caractères ?

    Tu évites la création d'objet temporaire, mais dans ton cas étant donné qu'il n'y a que 3 concaténations successive la différence sera imperceptible...

    a++

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 23/02/2015, 16h29
  2. Tri successif avec Comparator
    Par adissa357 dans le forum Général Java
    Réponses: 11
    Dernier message: 16/10/2013, 23h02
  3. affichage de graphique successif avec 2 pushbutton
    Par oliv27400 dans le forum Interfaces Graphiques
    Réponses: 3
    Dernier message: 15/06/2010, 08h44
  4. [SQL] Tris successifs avec un limit
    Par LestoK dans le forum PHP & Base de données
    Réponses: 14
    Dernier message: 03/08/2007, 10h47
  5. [SGBDO] Lequel conseillez-vous avec DotNet ?
    Par ePoX dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 21/03/2006, 20h22

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