2012-01-14 6 views
1

特定のURLからデータをダウンロードし、各通貨を識別するISOコードを含む文字列を検索する外国為替レートアプリを開発しています。他の通貨での価値。私はこれをPythonで開発しましたが、私はそれをJavaに移植してAndroidに移植しようとしています。URLのデータを文字列変換を使用して変数(float)に割り当てます。

Pythonのコード: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]) 
. 
. 
. 

を使用すると、上記のコードは、今私はそのJavaとAndroidのSDK内のポートにしようとしている、Androidの中のPython上とSL4Aに正しいと機能です。

は、これまでのところ私は、標準のJavaでこれを書いている:

だから、
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(); 
    } 
} 

、値がfloat型の変数内のURLに示されている取得する方法を、私は文字列操作を適用することができますか?

私の英語のために申し訳ありません。

答えて

1
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; 

これは

+0

ありがとう、それは私に直感を与えたが、String usd = inputline.substring(inputline.indexOf( "USD")+ 25、inputline.length);スレッド「main」の例外をドロップしているjava.lang.NullPointerException \t URLReader.main(URLReader.java:18) –

+0

URLREaderはinputline.substringとは関係ありません。エラーはあなたのコードで以前に行われたことよりも起こっている可能性があります。 –

0

はStringBuilderのを見て、それがのindexOf()メソッドだあなたにいくつかの洞察力を与えることを願っています。

関連する問題