Attribuer des données d'une URL à une variable (float) à l'aide de la transformation de chaîne
Question
Je développe une application de taux de change qui télécharge des données à partir d'une URL spécifique, puis recherche une chaîne contenant un code ISO qui identifie chaque devise et sa valeur dans une autre devise.J'ai développé ceci en python, mais j'essaye de le porter sur Java et ensuite sur Android.
Code Python: Utilisation de 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])
.
.
.
Le code ci-dessus est correct et fonctionnel sur Python et dans SL4A sous Android, j'essaye maintenant de le porter en Java et dans le SDK Android.
Jusqu'à présent, j'ai écrit ceci en 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();
}
}
Alors, comment puis-je appliquer une manipulation de chaîne pour obtenir les valeurs représentées dans l'URL dans une variable flottante?
Désolé pour mon anglais.
La solution
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;
j'espère que cela vous donnera un aperçu
Autres conseils
Jetez un œil à StringBuilder et à sa méthode indexOf ().