Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Parsing importo

0 views
Skip to first unread message

Anderthal ®

unread,
Aug 31, 2005, 10:21:05 AM8/31/05
to
devo importare dei dati da un file di testo, ho anche degli importi numerici
che estraggo come sottostringa, sono allineati a sinistra in questo modo:
"5,5 "
"10,78 "
"6,97 "
"11,88 "
"52,18 "
il parser mi da errore, suppongo sia per la virgola,
c'è modo di impostare la virgola come separatore dei decimali?


pb

unread,
Aug 31, 2005, 10:29:17 AM8/31/05
to
dipende com'è il parser...

--

Anderthal ®

unread,
Aug 31, 2005, 10:35:21 AM8/31/05
to
"pb" <shap...@hotmail.com> ha scritto nel messaggio
news:19jRe.1524$O6.7...@news3.tin.it...

> dipende com'è il parser...
>

Double.parseDouble(cos)
cos è una Stringa che contiene i valori elencati,
se modifico i dati con il punto al posto della virgola, funziona.

Lavorando con un'altro linguaggio (RPG400) è possibile impostare
all'inizio del pgm se il delimitatore dei decimali è il punto oppure
la virgola.

Alex

unread,
Aug 31, 2005, 10:39:53 AM8/31/05
to
Non puoi fare un replace della virgola in punto?

pio...@inwind.it

unread,
Aug 31, 2005, 10:41:50 AM8/31/05
to

Alex wrote:
> Non puoi fare un replace della virgola in punto?

...così elimini anche gli eventuali separatori delle migliaia...

pb

unread,
Aug 31, 2005, 10:42:06 AM8/31/05
to
e se fai una porcata tipo
Double.parseDouble(cos.replace(',','.')); ?

--
"Anderthal ®" <ande...@cheapnet.it> ha scritto nel messaggio
news:df4f8t$pmm$1...@area.cu.mi.it...

Anderthal ®

unread,
Aug 31, 2005, 11:07:31 AM8/31/05
to
si con il replace funziona ...
ma fino ad ora ho trovato solo importi piccoli,
non vorrei che oltre il migliaio ci fossero dei punti
tipo 1.350,54 il replace mi darebbe 1.350.54 non parsabile

preferirei una soluzione migliore


pb

unread,
Aug 31, 2005, 11:14:53 AM8/31/05
to
eggià..
potresti usare DecimalFormatsymbols per settare il separatore decimale..

--
~~~ Rifletti, prima di pensare! ~~~
"Anderthal ®" <ande...@cheapnet.it> ha scritto nel messaggio
news:df4h57$ssg$1...@area.cu.mi.it...

marcopar

unread,
Aug 31, 2005, 11:30:54 AM8/31/05
to

Anderthal ®

unread,
Aug 31, 2005, 11:33:09 AM8/31/05
to
"pb" <shap...@hotmail.com> ha scritto nel messaggio
news:NPjRe.2620$4g5.1...@news4.tin.it...

> eggià..
> potresti usare DecimalFormatsymbols per settare il separatore decimale..
>

mmh, io parto da una stringa, non credi sia applicabile il format,
pensav di fare un replace per sostituire gli eventiali punti con degli
spazi,
lasciando solo la virgola, poi eliminare gli spazi e infine fare il replace
della
virgola con il punto.

quindi se parto da "1.350,54 "
con il replace ottengo "1 350,54 "
a questo punto come si fa a eliminare gli spazi intermedi e ottenere una
stringa
allineata a sinistra?

Andrea Cerisara

unread,
Aug 31, 2005, 12:57:39 PM8/31/05
to
Il Wed, 31 Aug 2005 17:33:09 +0200, Anderthal ® ha scritto:

> quindi se parto da "1.350,54 "
> con il replace ottengo "1 350,54 "
> a questo punto come si fa a eliminare gli spazi intermedi e ottenere una
> stringa
> allineata a sinistra?

Con il metodo replaceAll di String ad esempio.

Ciao,
Andrea.

Giambo

unread,
Aug 31, 2005, 1:57:05 PM8/31/05
to
Anderthal ® wrote:

> c'è modo di impostare la virgola come separatore dei decimali?

http://java.sun.com/j2se/1.4.2/docs/api/java/text/DecimalFormat.html

--
Giambo - Occhio al filtro antispam _e_ alla whitelist !

Alex

unread,
Aug 31, 2005, 2:39:01 PM8/31/05
to
Ma scusa se sei certo che il separatore decimale è la virgola fai una
replace che elimina i punti e una che sostituisce virgola in punto...
Se non sei certo nemmeno di questo parti da destra e il primo simbolo
che trovi lo trasformi in punto tutti gli altri li scarti:

boolean flagDone=false;

for (int i=s.lenght()-1; i>=0; i++){
if (s[i]=='.' || s[i]==','){
if (!flagDone){
flagDone=true;
tmp.append('.');
} //altrimenti non fai niente
}else
tmp.append(s[i]);
}

non ricordo la sintassi java ma l'importante è che capisci
l'algoritmo! Dove append deve aggiungere un carattere da sinistra, non
farmi cercare come fare! Questo immagino lo saprai benissimo

Giuseppe Lacriola

unread,
Aug 31, 2005, 5:28:21 PM8/31/05
to
che ne diresti di utilizzare le espressioni regolari...

Stai programmando in java, le cose semplici cono già fatte,
qui bisogna pensare ad usare nn a riscrivere...!!!

0 new messages