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

Collection et Stream Java Discussion :

tableau de byte en String


Sujet :

Collection et Stream Java

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 146
    Points : 93
    Points
    93
    Par défaut tableau de byte en String
    Bonjour,
    J'ai un petit soucis pour faire rentrer des Bytes dans un String.

    En fait j 'arrive bien à afficher ce que je veux mais je n arrive pas a metttre ce que j'affiche dans un String


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    for (int i = 0; i < javaByteArrayValue.length; i++) {			System.out.format( "%02X%s", javaByteArrayValue[i],(ijavaByteArrayValue.length - 1) ? "-" : "");
    }

    merci du coup de pouce

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour, est-ce que ceci ne conviendrait pas? en utilisant le constructeur String(byte[])
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(new String(javaByteArrayValue));

  3. #3
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 146
    Points : 93
    Points
    93
    Par défaut
    Non ça ne le fait pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    System.out.println(new String(javaByteArrayValue));
    ça m affiche les memes resultats qu avant la boucle que j ai fait en haut du topic
    merci

  4. #4
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Quel format obtiens-tu?
    Quel format veux-tu?
    Ce n'est pas très clair.

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 146
    Points : 93
    Points
    93
    Par défaut
    A la fin ça me sort une adresse MAC avec le System.out.format

  6. #6
    Membre confirmé Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 505
    Points
    505
    Par défaut
    Voici le code pour convertir un tableau d'octets en chaine hexa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    StringBuilder builder = new StringBuilder(12);
    for (int i = 0; i < javaByteArrayValue.length; i++) {
        if(javaByteArrayValue[i] < 0x10) {
            builder.append('0').append(Integer.toHexaString(javaByteArrayValue[i]));
        } else {
            builder.append(Integer.toHexString(javaByteArrayValue[i]));
        }
    }
     
    String strValue = builder.toString();

  7. #7
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 146
    Points : 93
    Points
    93
    Par défaut
    moi j ai ça en sortie de System.out.format :00-03-BA-CC-45-1B

    et avec la methode ci dessus j ai ceci:

    str value: 00030ffffffba0ffffffcc451b

    ce n est plus tres loin

  8. #8
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Mais tu cherches à obtenir quoi?

  9. #9
    Membre confirmé Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Points : 505
    Points
    505
    Par défaut
    Voilà avec les virgules corrigées.

    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
    StringBuilder builder = new StringBuilder(12);
    int valueTmp;
    for (int i = 0; i < javaByteArrayValue.length; i++) {
        valueTmp = 0xff & javaByteArrayValue[i];
        if(valueTmp < 0x10) {
            builder.append('0').append(Integer.toHexaString(valueTmp));
        } else {
            builder.append(Integer.toHexaString(valueTmp));
        }
        if(i < javaByteArrayValue.length-1) {
            builder.append('-')
        }
    }
     
    String strValue = builder.toString();

  10. #10
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 146
    Points : 93
    Points
    93
    Par défaut
    cela fonctionne
    merci beaucoup bonne journée

  11. #11
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par lerab51 Voir le message
    cela fonctionne
    merci beaucoup bonne journée
    Penses au bouton pour la prochaine fois



    Sinon une solution alternative basé sur le format()/printf() :
    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
    	public static String toHexaString(final byte[] bytes) {
    		final int len = bytes.length;
    		if (len==0) {
    			// Tableau vide : on retourne directement une chaine vide :
    			return "";
    		}
    		// On crée le StringBuilder directement à la bonne taille :
    		final StringBuilder builder = new StringBuilder( (len*2) + (len-1) );
    		// On affiche le premier byte
    		// %02x = valeur hexa sur 2 chiffres, avec des zéros devant si plus court
    		// (avec x pour des minuscules ; X pour des majuscules )
    		builder.append( String.format("%02x", bytes[0]) );
    		// Puis on affiche tous les autres bytes, précédé du tiret
    		for (int i=1; i<len; i++) {
    			builder.append( String.format("-%02x", bytes[i]) );
    		}
    		return builder.toString();
    	}

    a++

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

Discussions similaires

  1. [Débutant] Convertir un tableau de byte en string
    Par bipbip2006 dans le forum C#
    Réponses: 4
    Dernier message: 04/07/2011, 22h41
  2. conversion d'un tableau de byte en String
    Par Tunisiano87 dans le forum ASP.NET
    Réponses: 5
    Dernier message: 18/11/2010, 17h59
  3. Transformer un tableau de Byte en string
    Par kinouseb dans le forum Windows Forms
    Réponses: 3
    Dernier message: 13/01/2009, 17h09
  4. convertir tableau de byte en String
    Par geek21 dans le forum Entrée/Sortie
    Réponses: 16
    Dernier message: 28/11/2007, 01h21
  5. conversion d'un tableau de bytes en string
    Par prady92 dans le forum VB.NET
    Réponses: 3
    Dernier message: 16/03/2007, 13h47

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