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 :

StringBuffer et BitSet


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
    Juin 2003
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 44
    Par défaut StringBuffer et BitSet
    Bonjour,
    j'extrait des bits (sous forme de chaine de caractere) a partir de caractere hexa. Jusque la tout va bien

    Ensuite je concatene ces bits et je voudrais retrouver leurs valeurs

    Pour cela je voudrais passer par un BitSet et c'est la que j'ai mon pb!!!
    Quelqu'un pourrait t'il m'indiquer comment passer de StringBuffer a BitSet
    pour ensuite passer du BitSet a un Long(ca je sais)

    En vous remerciant

  2. #2
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Salut!

    Une petite boucle ça pourrait pas convenir?

    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
     
    //StringBuffer qui contient les bits
            StringBuffer buffer = new StringBuffer("1000100101000101010");
     
            //on défini un BitSet de même longueur que le StringBuffer
            BitSet bitset = new BitSet(buffer.length());
     
     
            for (int i = 0; i < buffer.length(); i++)
            {
                //on parcourt le StringBuffer caractère par caractère , on check la valeur du caractère
                //et on set le bit correspondant dans le bitset en fonction de cette valeur
                char current = buffer.charAt(i);
     
                if (current == '0')
                {
                    bitset.set(i, false);
                }else{
                    bitset.set(i, true);
                }
            }
     
            System.out.println(bitset);
            //affiche {0, 4, 7, 9, 13, 15, 17} => indique les positions du bitset mises à true

  3. #3
    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,

    Si c'est pour convertir en long pourquoi passer par un BitSet ? Un simple parseLong() devrait faire l'affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    long l = Long.parseLong("1000100101000101010", 2);
    Non ?

    a++

    [edit] Grillé

  4. #4
    Membre expérimenté
    Inscrit en
    Juin 2003
    Messages
    292
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 292
    Par défaut
    Citation Envoyé par Panneau Voir le message
    Bonjour,
    j'extrait des bits (sous forme de chaine de caractere) a partir de caractere hexa. Jusque la tout va bien

    Ensuite je concatene ces bits et je voudrais retrouver leurs valeurs

    Pour cela je voudrais passer par un BitSet et c'est la que j'ai mon pb!!!
    Quelqu'un pourrait t'il m'indiquer comment passer de StringBuffer a BitSet
    pour ensuite passer du BitSet a un Long(ca je sais)

    En vous remerciant
    et pourquoi tu ne passe pas de tes caracteres hexa a Long directement?
    bon si ca peut t aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Long.parseLong(String taChaine,16) //16 pour hexa, 10 pour oct...

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

Discussions similaires

  1. [StringBuffer]Flux de données et saut de ligne
    Par Goon dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 11/02/2006, 10h32
  2. StringBuffer append Character = IOException ??
    Par KiLVaiDeN dans le forum Langage
    Réponses: 8
    Dernier message: 03/06/2005, 14h25
  3. [Optimisation] Comment bien utiliser le StringBuffer?
    Par mathieu dans le forum Langage
    Réponses: 4
    Dernier message: 17/05/2004, 14h22
  4. [StringBuffer] Texte non pris en entier
    Par GLDavid dans le forum Collection et Stream
    Réponses: 6
    Dernier message: 07/05/2004, 16h37
  5. [Debutant][StringBuffer]Décortiquer
    Par tsyfar dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 01/10/2003, 17h54

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