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 :

join en JAVA (comme en PERL)?


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Avatar de sroux
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 162
    Par défaut join en JAVA (comme en PERL)?
    Bonjour,

    J'ai un objet de type liste et dans lequel je balance des chaînes issues d'un split:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    //exemple Java
    import java.apache.oro;
    import java.util;
    String ligne = "ztrt^retrt^zrzr*10:26:58:sg&aaar";
    Perl5Util tmpRegEx = new Perl5Util();
    List<String> liste = new ArrayList <String> ();
    tmpRegex.split(liste, "/[~^*&:]/", ligne)
    Habitué à PERL, je recherche maintenant la fonction "join" dans Java afin d'assembler certains chaînes splitées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //exemple PERL
    $Ligne = "ztrt^retrt^zrzr*10:26:58:sg&aaar";
    @f = split/[~^*&:]/, $Ligne;
    $Ligne = join('|', @f[0..3]).':'.join(':', @f[4..5]).'|' ...
    Quel est donc l'équivalent de la fonction join dans Java, le cas échéant que me proposez vous à part de faire du liste.get(index) + liste.get(index2) + liste.get(index6) ...

    Merci d'avance.

    SRoux

  2. #2
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Tu peut employer un StringBuffer et la méthode append de celui-ci pour reproduire le comportement de Perl

  3. #3
    Membre très actif
    Avatar de sroux
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 162
    Par défaut yes but...
    t'es un killer Gimli, mais n'aurais-tu pas un chtit exemple?...

    Merci

    SR

  4. #4
    Membre très actif
    Avatar de sroux
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Avril 2003
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 162
    Par défaut suite
    Dois-je en effet looper pour arriver à effectuer ce genre de cascade:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    //Exemple en PERL
    $lastf = scalar(@f);
    $Ligne = join('', @f[12..13]).' '.join(' ', @f[14..$lastf]);

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Malheureusement, l'utilisation d'une boucle semble inévitable........

    Sinon un StringBuffer c'est tout simple d'utilisation, tu stockes des chaines dedans et au moment ou c'est fini tu obtiens une belle String en appelant toString sur ton StringBuffer. Et c'est largement plus rapide que des concaténations crutales de String ("a" + "b" par exemple)

    Utilisation du StringBuffer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    StringBuffer sb = new StringBuffer();
    sb = sb.append("toto").append("titi").append("tata");
    String maChaine = sb.append("bidule").append("machin").append("truc").toString();

  6. #6
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par sinok
    Et c'est largement plus rapide que des concaténations crutales de String ("a" + "b" par exemple)
    Il me semble que le compilateur transforme "a" + "b" en new StringBuffer("a").append("b").toString() donc c'est pas plus rapide. La véritable utilité est dans les boucles, puisque si on emploie un simple + ca crée une nouvelle instance de StringBuffer à chaque itération, ce qui est énormémement couteux.

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

Discussions similaires

  1. Application java comme service windows
    Par kam81 dans le forum Langage
    Réponses: 1
    Dernier message: 29/04/2007, 09h14
  2. java.comm: inclure un JRE dans les sources logiciel?
    Par ccedced dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 07/03/2007, 15h16
  3. Comment exécuter une application java comme un batch C ?
    Par gillin dans le forum Général Java
    Réponses: 7
    Dernier message: 09/02/2007, 13h59
  4. Réponses: 4
    Dernier message: 15/01/2007, 17h44
  5. est ce que existe type struct en java comme en c ?
    Par bill7 dans le forum Langage
    Réponses: 10
    Dernier message: 11/01/2006, 10h02

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