Article View: pl.comp.lang.java
Article #153727zmiana przecinka na kropkę w double
From: Smok
Date: Thu, 27 Dec 2012 21:21
Date: Thu, 27 Dec 2012 21:21
37 lines
3090 bytes
3090 bytes
Cześć.
Mam do obrobienia plik XML. Najpierw pobieram go z internetu i wrzucam do pliku:
URL url = new URL("http://www.nbp.pl/kursy/xml/LastC.xml");
url.openConnection();
InputStream reader = url.openStream();
FileOutputStream writer = new FileOutputStream("NewC.xml");
byte[] buffer = new byte[153600];
int totalBytesRead = 0;
int bytesRead = 0;
while ((bytesRead = reader.read(buffer)) > 0)
{
writer.write(buffer, 0, bytesRead);
buffer = new byte[153600];
totalBytesRead += bytesRead;
}
writer.close();
reader.close();
Niestety, w tym pliku są kursy walut (double) ale z przecinkami zamiast kropek.
Jak zamienić przecinki na kropki? Gdzie to zrobić? Czy można zrobić jakiś odpowiednik replaceAll w tym strumieniu?
A może zmiany dokonać już w konstruktorze klasy, wywoływanym przez bibliotekę xstream przy parsowaniu pliku XML? Odebrać wartość jako string, zmienić kropki na przecinki i rzutować na double... coś w tym rodzaju:
public pozycja(String data_notowania, String kod_waluty, String nazwa_waluty, int przelicznik, String kurs_kupna, String kurs_sprzedazy) throws ParseException {
kurs_kupna.replaceAll(",", ".");
kurs_sprzedazy.replaceAll(",", ".");
this.kod_waluty = kod_waluty;
this.nazwa_waluty = nazwa_waluty;
this.przelicznik = przelicznik;
this.kurs_kupna = Double.parseDouble(kurs_kupna);
this.kurs_sprzedazy = Double.parseDouble(kurs_sprzedazy);
this.data_notowania = data_notowania;
}
Jak to zrobić, żeby było najlepiej?
Dzięki
Smok.
Technical Details
Message-ID:
<51041491-8315-4ae2-a259-52072e20bf22@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.supermedia.pl!plix.pl!newsfeed2.plix.pl!feed.xsnews.nl!border-3.ams.xsnews.nl!feeder1-1.proxad.net!proxad.net!feeder1-2.proxad.net!209.85.216.88.MISMATCH!ee4no2612488qab.0!news-out.google.com!k2ni3609qap.0!nntp.google.com!ee4no2533110qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
X-Received: by 10.224.207.66 with SMTP id fx2mr16453591qab.7.1356643312817; Thu, 27 Dec 2012 13:21:52 -0800 (PST) Received: by 10.49.48.41 with SMTP id i9mr4831832qen.36.1356643312792; Thu, 27 Dec 2012 13:21:52 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!news.supermedia.pl!plix.pl!newsfeed2.plix.pl!feed.xsnews.nl!border-3.ams.xsnews.nl!feeder1-1.proxad.net!proxad.net!feeder1-2.proxad.net!209.85.216.88.MISMATCH!ee4no2612488qab.0!news-out.google.com!k2ni3609qap.0!nntp.google.com!ee4no2533110qab.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.java Date: Thu, 27 Dec 2012 13:21:52 -0800 (PST) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.74.86.79; posting-account=241vYgoAAABW8iK7fLOh48qgj_-mBRkN NNTP-Posting-Host: 89.74.86.79 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <51041491-8315-4ae2-a259-52072e20bf22@googlegroups.com> Subject: zmiana przecinka na kropkę w double From: Smok <ismoczkiewicz@gmail.com> Injection-Date: Thu, 27 Dec 2012 21:21:52 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit