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 :

Coupage string en plusieurs string


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 42
    Par défaut Coupage string en plusieurs string
    Bonjour,
    J'ai une petite question, je cherche à améliorer mon code java,
    J'ai une String qui est composée de sous chaines de 4caractères, qui sont séparées par un vide.
    et je veux alimenter des string d'un objet :
    Genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String s = YYAA AAAA BBBB CCCC DDDD EE
    donc ce que je fais moi est :
    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
    String[] tabString = s.split(" ");
     
    		if( tabString == null ){
    			return;
    		}
     
    		this.setIString2(tabString[1]);
    		if( tabString.length >= 3 ){
    			this.setIString3(tabString[2]);
    		}
    		if( tabString.length >= 4 ){
    			this.setIString4(tabString[3]);
    		}
    		if( tabString.length >= 5 ){
    			this.setIString5(tabString[4]);
    		}
    		if( tabString.length >= 6 ){
    			this.setIString6(tabString[5]);
    		}
    		if( tabString.length >= 7 ){
    			this.setIString7(tabString[6]);
    		}
    		if( tabString.length >= 8 ){
    			this.setIString8(tabString[7]);
    		}
    		if( tabString.length >= 9 ){
    			this.setIString9(tabString[8]);
    		}
     
     
    	}
    Donc je me demandais, s'il n'y avait pas mieux que ce code ?
    Merci

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    le test sur null est inutile. Split ne peux jamais retourner un null.

    Test méthodes setIString2 3 4 5 tout ce que tu veux devraient avoir des noms explicites, genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    setStringDate(tabString[0]), 
    setName(tabString[1]);
    Paradoxalement, tu teste null mais tu as oublié de tester la taille de ton tableau (en tout cas pour l'index 1).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (tabString.length!=EXPECTED_MIN_COLUMN_COUNT)
      throw new ApplicationException("Ligne incorrecte dans fichier à l'index ....)
    Enfin, coder les index attendus dans des constantes serait plus lisible.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public static final int INDEX_DATE = 0;
    //....
    if (tabString.length>INDEX_DATE)
        setStringDate(tabString[INDEX_DATE]);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 42
    Par défaut
    Merci tout d'abord pour ta réponse
    Donc, à part le test que tu me dis de rajouter pour le null, je ne peux pas faire mieux que mon code ??
    Merci

  4. #4
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 582
    Par défaut
    Si si, tu peux donner de meilleurs noms que setIString1, etc.
    À la limite s'il n'y a pas vraiment de meilleur nom que ça, alors iString1, iString2 etc devraient être remplacés par un tableau de String, avec un seul setter pour ce tableau. La seule vérification à faire serait alors sa taille.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Citation Envoyé par y_chafaqi Voir le message
    Donc, à part le test que tu me dis de rajouter pour le null, je ne peux pas faire mieux que mon code ??
    Ca veut dire quoi "mieux que ce code" ? Si ce que tu veux, c'est factoriser, tu peux utiliser la reflexion pour appeler chaque méthode.
    Plus simple, tant qu'à avoir des méthode au nom qui ne veut rien dire, au lieu de les appeler "void setIStringN(String s)", tu peux n'en utiliser qu'une : "void setIString(int num, String s)". Comme ca, c'est facilement parametrable avec une boucle.

Discussions similaires

  1. [Débutant] Recherche plusieurs string dans une string
    Par KaloOopS dans le forum C#
    Réponses: 2
    Dernier message: 18/01/2012, 10h30
  2. [DisplayTag] concaténer plusieurs String en une colonne
    Par Invité dans le forum Taglibs
    Réponses: 4
    Dernier message: 24/04/2009, 17h36
  3. Problème Connection String avec plusieurs projets.
    Par Nadiya dans le forum Windows Forms
    Réponses: 0
    Dernier message: 20/11/2008, 23h11
  4. Recherche de string dans plusieurs fichiers (findstr like)
    Par Booster2ooo dans le forum Langage
    Réponses: 10
    Dernier message: 07/09/2007, 17h19
  5. Comment sauver plusieurs String ?
    Par Speed41 dans le forum Langage
    Réponses: 2
    Dernier message: 19/08/2004, 13h49

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