Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    258

    Leggere opportunamente un double...

    Salve ragazzi,
    volevo chiedervi un consiglio.
    Vorrei leggere un array di byte in una stringa.
    Qual è il metodo più efficiente?

    Inoltre dovrei spezzare la linea in funzione di un certo delimitatore presente nell'array(userò quindi la funzione split) ma come faccio a convertire parte di questa stringa in double?
    Ho usato per ora il comando

    codice:
    String linea=new String(x);
    System.out.println(linea);
    dove x è l'array di byte
    String[] arraylinee=lettura.split(";");
                    for (int u=0;u<arraylinee.length;u++)
                    	System.out.println(arraylinee[u]);
    per controllare la correttezza del contenuto dell'array di byte e fare lo split delle righe ed ho avuto

    ProbesetID MAO.CEL MAO1.CEL MAO2.CEL MAM.CEL MAM1.CEL MAM2.CEL ZAR.CEL ZOR.CEL ZOR1.CEL ZOE.CEL ZOE1.CEL ZOE2.CEL

    1007_s_at 2 5 2 7 . 5 1 5 5 7 2 2 7 4 5 . 4 2 7 6 1 3 2 7 2 1 . 7 4 4 0 9 1 1 4 1 8 . 3 7 4 2 6 1 1 4 1 4 . 6 4 5 2 9 1 3 6 2 . 3 4 1 0 0 6 2 4 4 7 . 8 1 2 2 1 2 3 4 0 . 5 5 2 6 5 7 2 3 3 5 . 3 8 3 6 4 1 1 3 0 1 . 8 3 1 6 5 3 1 3 4 3 . 2 0 1 4 0 3 1 3 0 5 . 5 7 4 0 2 3

    1053_at 3 9 . 4 0 2 4 0 4 2 1 3 9 . 6 1 6 7 7 9 3 3 4 0 . 4 9 5 1 1 4 5 3 4 9 . 6 8 9 4 6 8 3 6 5 0 . 7 4 5 8 3 4 2 5 0 . 1 5 6 5 4 0 8 5 6 . 0 6 5 5 8 5 5 7 5 9 . 4 3 4 7 1 5 8 2 5 8 . 1 8 0 6 1 8 7 9 8 4 . 5 7 4 4 0 3 7 6 8 8 . 5 1 6 0 3 5 6 8 2 . 4 5 2 0 8 3 6 5

    123053_at 1 3 9 . 4 0 2 4 0 4 2 1 4 3 9 . 6 1 6 7 7 9 3 3 4 1 0 . 4 9 5 1 1 4 5 3 1 4 9 . 6 8 9 4 6 8 3 6 7 5 0 . 7 4 5 8 3 4 2 1 5 0 . 1 5 6 5 4 0 8 5 3 6 . 0 6 5 5 8 5 5 7 5 6 5 9 . 4 3 4 7 1 5 8 2 5 1 8 . 1 8 0 6 1 8 7 9 1 8 4 . 5 7 4 4 0 3 7 6 8 8 3 . 5 1 6 0 3 5 6 1 8 2 . 4 5 2 0 8 3 6 5

    che corrisponde esattamente alle linee che mi aspettavo tranne che i double sono stati mostrati a caratteri.
    Devo realizzare quindi una funzione che mi trasformi i char formanti un double in double...
    potete aiutarmi col codice?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Leggere opportunamente un double...

    Originariamente inviato da gbattine
    Devo realizzare quindi una funzione che mi trasformi i char formanti un double in double...
    potete aiutarmi col codice?
    double d = Double.parseDouble (str);
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    258
    grazie....però il comando lo sapevo ma è che non so come calarlo nel mio programma?
    Mi daresti una mano a modificare il mio codice?
    Grazie per la disponibilità..

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da gbattine
    grazie....però il comando lo sapevo ma è che non so come calarlo nel mio programma?
    Mi daresti una mano a modificare il mio codice?
    Grazie per la disponibilità..
    Puoi fare un esempio chiaro di come è composta la linea che devi elaborare??
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    258
    Ecco 2 linee da elaborare
    Leggendo l'array di byte con la mia funzione in una stringa ottengo(ho considerato un file di sole 2 righe)

    ProbesetID MAO.CEL MAO1.CEL MAO2.CEL MAM.CEL MAM1.CEL MAM2.CEL ZAR.CEL ZOR.CEL ZOR1.CEL ZOE.CEL ZOE1.CEL ZOE2.CEL ;1007_s_at 2 5 2 7 . 5 1 5 5 7 2 2 7 4 5 . 4 2 7 6 1 3 2 7 2 1 . 7 4 4 0 9 1 1 4 1 8 . 3 7 4 2 6 1 1 4 1 4 . 6 4 5 2 9 1 3 6 2 . 3 4 1 0 0 6 2 4 4 7 . 8 1 2 2 1 2 3 4 0 . 5 5 2 6 5 7 2 3 3 5 . 3 8 3 6 4 1 1 3 0 1 . 8 3 1 6 5 3 1 3 4 3 . 2 0 1 4 0 3 1 3 0 5 . 5 7 4 0 2 3 ;

    La prima riga termina al ; e lì inizia la seconda riga,poi ce ne sarà una 3a,4a,...tutte col formato della 2a,cioè un primo elemento di tipo stringa e altri double.
    La prima riga ha sole stringhe quindi non mi dà problemi.
    Come faccio a convertire in double gli elementi dalla seconda riga in poi,escluso il primo elemento che è una stringa?
    Se non mi sono spiegato ancora il formato della linea è(metto per ipotesi 3 valori per linea,ne sono di +..)

    string string string;string double double;string double double.....etc....

    Spero di essere stato chiaro,mi aiuti adi implementare questa conversione in double?(sempre escluso il primo elemento di ogni riga e la prima riga per intera).
    Grazie

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da gbattine
    Ecco 2 linee da elaborare
    Leggendo l'array di byte con la mia funzione in una stringa ottengo(ho considerato un file di sole 2 righe)

    ProbesetID MAO.CEL MAO1.CEL MAO2.CEL MAM.CEL MAM1.CEL MAM2.CEL ZAR.CEL ZOR.CEL ZOR1.CEL ZOE.CEL ZOE1.CEL ZOE2.CEL ;1007_s_at 2 5 2 7 . 5 1 5 5 7 2 2 7 4 5 . 4 2 7 6 1 3 2 7 2 1 . 7 4 4 0 9 1 1 4 1 8 . 3 7 4 2 6 1 1 4 1 4 . 6 4 5 2 9 1 3 6 2 . 3 4 1 0 0 6 2 4 4 7 . 8 1 2 2 1 2 3 4 0 . 5 5 2 6 5 7 2 3 3 5 . 3 8 3 6 4 1 1 3 0 1 . 8 3 1 6 5 3 1 3 4 3 . 2 0 1 4 0 3 1 3 0 5 . 5 7 4 0 2 3 ;

    La prima riga termina al ; e lì inizia la seconda riga,poi ce ne sarà una 3a,4a,...tutte col formato della 2a,cioè un primo elemento di tipo stringa e altri double.
    La prima riga ha sole stringhe quindi non mi dà problemi.
    Come faccio a convertire in double gli elementi dalla seconda riga in poi,escluso il primo elemento che è una stringa?
    La forma di questi numeri .... è un po' strana. Ogni cifra è separata dall'altra da uno spazio.

    Prendiamo un pezzo che hai scritto:
    2 5 2 7 . 5 1 5 5 7 2 2 7 4 5 . 4 2 7 6 1 3 2 7 2 1 . 7 4 4 0 9 1 1 4 1 8 . 3 7 4 2 6 1
    Ci sono dei punti '.', ma dove finisce un numero e inizia l'altro???

    Guarda che né io né altri abbiamo la sfera di cristallo!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    258
    Scusami ma avevo un errore nel codice....adesso ho questo output

    ProbesetID MAO.CEL MAO1.CEL MAO2.CEL MAM.CEL MAM1.CEL MAM2.CEL ZAR.CEL ZOR.CEL ZOR1.CEL ZOE.CEL ZOE1.CEL ZOE2.CEL
    1007_s_at 2527.515572 2745.427613 2721.744091 1418.374261 1414.64529 1362.341006 2447.81221 2340.552657 2335.383641 1301.831653 1343.201403 1305.574023

    dove uno spazio separa i numeri double.
    Quello che voglio dire è che adesso mi interessa nel pezzo di codice che ti ho postato convertire questi numeri in double e non so come farlo,cioè non so integrare il comando che tu mi hai consigliato all'interno del codice dove faccio lo split.
    Mi aiuteresti in questo?
    Devo quindi semplicemente modificare il codice che ti ho postato aggiungengo il
    double d = Double.parseDouble (str); per rendere double quei numeri che in realtà sono rappresentati come stringhe. Questa operazione va fatta prima di caricare l'array in una stringa o all'atto dello split?
    Potrei caricare in maniera più "efficiente" l'array di byte?
    Come si vede i numeri sono separati da uno spazio,il punto separa la parte intera dalla decimale e il ;che separa le linee è scomparso in seguito allo split....
    potete aiutarmi?

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.