Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2016
    Messaggi
    16

    Convertire da byte a String

    Vorrei convertire un array di byte nella loro rappresentazione in formato stringa, tipo

    ARRAY
    val 0 8 e a 2 6
    pos 0 1 2 3 4 5 ... 16



    STRINGA
    "0 8 e a 2 6"


    come si può fare?

  2. #2
    Facilmente il costruttore di String prevede la creazione della stringa attraverso un flusso di byte.

    byte[] b;
    --operazioni per riempire lo stream
    .....

    String s=new String(b);
    System.out.println(s)

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da abcx Visualizza il messaggio
    Vorrei convertire un array di byte nella loro rappresentazione in formato stringa, tipo

    ARRAY
    val 0 8 e a 2 6
    pos 0 1 2 3 4 5 ... 16



    STRINGA
    "0 8 e a 2 6"


    come si può fare?
    Innanzitutto non puoi usare il costruttore di String che riceve un byte[]. Questo serve SOLO quando i byte rappresentano "caratteri" (e il charset va anche considerato!). E non è sicuramente il tuo caso.

    Se hai un byte che vale es. 14 e vuoi che nella stringa ci sia la rappresentazione in esadecimale es. "e", allora devi anche "formattare" il valore in esadecimale.

    Comunque fai un ciclo e "appendi" in un StringBuffer/StringBuilder le rappresentazioni hex dei byte, mettendo uno spazio tra i valori.


    P.S. mi sta venendo il dubbio. Quando dici: val 0 8 e a 2 6
    cosa intendi per es. quella "e" ? Si tratta di un byte che ha valore 14 (0x0e in esadecimale) oppure ha valore 101 che in ASCII è la lettera 'e' ??
    Precisa meglio.
    Ultima modifica di andbin; 13-01-2017 a 11:43
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2016
    Messaggi
    16
    Come si fa a convertire un byte da decimale alla sua rappresentazione in esadecimale?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da abcx Visualizza il messaggio
    Come si fa a convertire un byte da decimale alla sua rappresentazione in esadecimale?
    Giusto per chiarire: un byte non è "decimale" ... un byte è un byte, sono 8 bit. Anche il "decimale" è una rappresentazione!

    Comunque la classe java.lang.Byte non ha purtroppo metodi per formattare in una determinata radice (base). Ci sono invece i metodi in java.lang.Integer:
    - public static String toHexString(int i)
    - public static String toString(int i, int radix)

    C'è una differenza tra i due, riguarda i valori negativi.

    Oppure anche la funzionalità di formattazione di Java 5 (i printf/format):
    String s = String.format("%02X", byteval);
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.