Autore Topic: Trasformare una stringa esadecimale in numero  (Letto 383 volte)

Offline MasterChief

  • Utente junior
  • **
  • Post: 83
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    OnePlus X
  • Sistema operativo:
    windows 10
Trasformare una stringa esadecimale in numero
« il: 11 Febbraio 2015, 23:07:46 CET »
0
Ciao a tutti,
il mio problema di fondo dovrebbe essere semplice, però ora come ora non ne vengo a capo. Io ho un file XML che sto parserizzando e i valori all'interno dei tag sono numeri esadecimali separati da un "|". una volta letto il contenuto di un tag faccio
Codice (Java): [Seleziona]
string.split("\\|") e poi devo prendere ogni pezzo splittato e farlo diventare un numero esadecimale.

Ho provato con
Codice (Java): [Seleziona]
Integer.parseInt(hex_value[i]) sia con
Codice (Java): [Seleziona]
Long.decode(hex_value[i],16) ma niente da fare...

Per spiegarmi meglio, se leggo in un tag "0x10|0x02", lo split mi ritorna
Codice (Java): [Seleziona]
hex_value = {"0x10","0x02"} io dovrei poi inserire i valori numerici in un array di int (visto che un numero deciamale o esadecimale si può esprimere come un int)

Sapreste dirmi l'istruzione da eseguire per ottenere un int n = 0x10 partendo da una stringa "0x10"?
Grazie mille in anticipo per l'aiuto.  :-)

Offline Nicola_D

  • Moderatore
  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
  • Respect: +323
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline MasterChief

  • Utente junior
  • **
  • Post: 83
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    OnePlus X
  • Sistema operativo:
    windows 10
Re:Trasformare una stringa esadecimale in numero
« Risposta #2 il: 12 Febbraio 2015, 00:40:32 CET »
0
ho provato anche ciò che viene scritto nel link, ma ho sempre java.lang.NumberFormatException: Invalid int: "0x10"... 0x10 è un valore che leggo dal tag xml, di sicuro mi perdo in qualcosa, ma non capisco cosa sbaglio...

Offline iceweasel

  • Moderatore globale
  • Utente senior
  • *****
  • Post: 878
  • Respect: +147
    • Mostra profilo
  • Dispositivo Android:
    LGE P990 - Google Nexus 5
  • Sistema operativo:
    Linux Debian Sid
Re:Trasformare una stringa esadecimale in numero
« Risposta #3 il: 12 Febbraio 2015, 04:10:42 CET »
+1
Quella funzione converte un numero esadecimale senza il prefisso '0x'. Se vuoi usare quella funzione devi per forza togliere il prefisso oppure usare la Integer.decode la quale rivela la presenza dei vari prefissi usati per indicare la base:

http://developer.android.com/reference/java/lang/Integer.html#decode(java.lang.String)

Inviato dal mio Nexus 5 utilizzando Tapatalk

adb logcat | tee /tmp/logcat | grep TAG

Offline MasterChief

  • Utente junior
  • **
  • Post: 83
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    OnePlus X
  • Sistema operativo:
    windows 10
Re:Trasformare una stringa esadecimale in numero
« Risposta #4 il: 12 Febbraio 2015, 15:46:08 CET »
0
Grazie mille, adesso funziona proprio come volevo  :-)
Grazie a tutti e due per gli aiuti :-)