[Java] Umrechnungskurse abrufen

Hallo,
ich bin gerade dabei einen "Waehrungsumrechner" zu schreiben. Ich dachte mir, wenn man aus dem I-net die aktuellen Kurse abrufen koennte waere das ganz praktisch. Nur, wie mach ich das? Hab leider noch nicht allzuviel Erfahrung mit Java gemacht. Bitte keine kompletten Code Loesungen, will das selbst machen. Wenn ihr dennoch welche schreibt, dann bitte mit einer Erklaerung was genau denn da gemacht wird.
Es wuerde reichen, wenn man so die wichtigsten Kurse abrufen koennte, z.B. Eur --> Dollar; Eur -->sFr; Eur -->Yen

Kann mir irgendwer helfen?

Gruss
 
Hallo,
müsstest nur einen Dienst finden (am besten Webservice) der dir dies Anbietet, gibt bestimmt einige.
Ansonsten kann man Wikipedia missbrauchen und dort die Kurse aus den Artikel extrahieren, wäre aber eine unschöne Lösung
 
Etwas genauer:
http://java.sun.com/docs/books/tutorial/networking/urls/index.html
alternativ
http://www.galileocomputing.de/openbook/javainsel7/javainsel_17_004.htm
Als Ergebnis hat man praktisch die Seite und muss nun die Kurse finden. Dazu würde man sich wohl die Seite etwas genauer anschauen müssen und dann (falls schon Erfahrung damit vorhanden) RegEx nutzen.
Oder: im einfachsten Fall reicht dann auch die Methode String.indexOf("Euro")
Damit lässt sich im Idealfall die Position der Kurse im Text bestimmen und z.B bei einem solchen Format:
1,4600 USD

Code:
String inhalt=...
int pos=inhalt.indexOf("USD");
String tmp_result=inhalt.substring(pos-7,pos); //Zahl extrahiern
Integer result=Integer.valueOf(tmp_result); //umwandeln
eventuell noch das Komma vor dem Umwandeln ersetzen.
 
Gibt es auch einen Online Service, der Börsendaten zugänglich macht. Also ohne das ich das da raus parsen muss?

@tanj:
Du schaust dir die Struktur der Webseite an. Dann lädst du sie mit deinem Programm runter und "extrahierst" die Daten dann aus der Webseite heraus.
Sprich: Du löschst alle überflüssigen Daten aus der HTML Seite raus und die Rohdaten kannste dann weiter verwenden.

Probleme gibts nur, wenn sich z.B. das Design oder der Aufbau der Seite ändert.

MFG
Ace
 
Original von tanj
Wie funktioniert den das? Versteh das nicht so ganz. Angenommen, ich hab diese Seite Wie bekomm ich da die Kurse "extrahiert"?
Naja, auch dieser Seite kommt US-Dollar und Euro als Begriff mehrmals vor. Dann musst du eben ein paar Anhaltspunkte suchen: zuerst würde ich nach "Währung" scannen:
Code:
int wPos=inhalt.indexOf("Währung");
dann (ab dieser Position) nach dem Vorkommen von US-Dollar:
Code:
int usPos=inhalt.indexOf("US-Dollar",wPos); //suche erst ab "Währung" nach dem Wort
im Quellcode müsste man dann an dieser Postition sein:
Code:
<td align="left" class="currency_text_2">--->US-Dollar</td>
		<td align=center class="currency_text_2">1,4601</td>
ab hier würde ich dann nach dem ersten Auftreten von ">" gefolgt von einer Zahl suchen
Code:
for (int i=usPos;i<inhalt.length();i++)
{
  String kurs="";
		for (int i=usPos;i<inhalt.length();i++)
		{
			if ((inhalt.charAt(i-1)=='>')&&(Character.isDigit(inhalt.charAt(i))))
					kurs=inhalt.substring(i,i+6);
					
		}
		
		Double ergebnis=Double.valueOf(kurs.replace(',', '.'));
		System.out.println(ergebnis);
}
das ist wirklich sehr sehr angepasst an die Seite - aber eine "allgemeine" Methode wäre imho viel zu umständlich.Schau dir eventuell nochmal ein Tutorial zu String an. Man findet bei Java schon viele Nettigkeiten für Strings, die man von C&Co gar nicht gewohnt ist ;)
 
Ich arbeite beruflich an einer sehr großen Finanzsoftware und bei uns laufen täglich Backgroundworker, die uns alle Marktdaten in unsere Datenbank speichern. Für den privaten Gebrauch, kann man natürlich eine Seite durchparsen, da ich nicht weiß ob es sonst irgendwelche Gratisdienste dafür gibt.
 
Zurück
Oben