Asignar datos de una URL a una variable (FLOAT) utilizando la transformación de cadenas
Pregunta
Estoy desarrollando una aplicación de tipo de cambio que descarga datos de una URL específica y luego busque una cadena que contenga un código ISO que identifique cada moneda y su valor en otra moneda. He desarrollado esto en Python, pero estoy tratando de transferirlo a Java y, posteriormente, a Android.
Código de Python: Uso 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])
.
.
.
El código anterior es correcto y funcional en Python y en SL4A en Android, ahora estoy tratando de portar eso en Java y en Android SDK.
Hasta ahora he escrito esto en Java estándar:
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();
}
}
Entonces, ¿cómo puedo aplicar la manipulación de la cadena para obtener los valores representados en la URL en una variable flotante?
Lo siento por mi ingles.
Solución
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;
Espero que esto te dé una idea
Otros consejos
Eche un vistazo a StringBuilder y su método indexOf ().