Assegna i dati da un URL a una variabile (galleggiante) usando la trasformazione della stringa
Domanda
Sto sviluppando un'app di tasso di cambio che scarica i dati da un URL specifico e quindi cerco una stringa che contiene un codice ISO che identifica ogni valuta e il suo valore in un'altra valuta. L'ho sviluppato a Python, ma sto cercando di portarlo a Java e successivamente su Android.
Codice Python: usando Urllib (2)
import urllib
import urllib2
from urllib import urlencode
from urllib2 import urlopen
from encodings import utf_8
import os
pg = urlopen("http://rss.timegenie.com/forex.txt")
text = pg.read().decode("utf8")
usd = text.find('USD')
start_of_priceusd = usd + 25
end_of_priceusd = start_of_priceusd + 6
priceusd = float(text[start_of_priceusd:end_of_priceusd])
.
.
.
Il codice sopra è corretto e funzionale su Python e in SL4A in Android, ora sto cercando di portarlo in Java e Android SDK.
Finora l'ho scritto in Java standard:
import java.net.*;
import java.io.*;
public class URLReader {
public static void main(String[] args) throws Exception {
URL curr = new URL("hhttp://rss.timegenie.com/forex.txt");
BufferedReader in = new BufferedReader(
new InputStreamReader(
curr.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
System.out.println(inputLine);
in.close();
}
}
Quindi, come posso applicare la manipolazione delle stringhe per ottenere i valori rappresentati nell'URL in una variabile float?
Mi scusi per il mio inglese.
Soluzione
List<Float> priceList = new ArrayList<Float>();
while ((inputLine = in.readLine()) != null){
System.out.println(inputLine);
String usd = inputline.substring(inputline.indexOf("USD")+25,inputline.length);
Float f = Float.valueOf(usd);
priceList.add(f);
}
in.close();
return priceList;
Spero che questo ti dia qualche intuizione
Altri suggerimenti
Dai un'occhiata al metodo StringBuilder e Its IndexOf ().