ValutaOmregning.java [Last ned]

import java.net.*;
import java.io.*;
import java.util.*;
import static java.lang.System.*;
import static java.lang.Double.*;
import static javax.swing.JOptionPane.*;
 
public class ValutaOmregning {
 
  public static void main(String[] args) {
    double kurs = 0;
    // Dagens kurs, EUR mot NKR hentes fra den europeiske sentralbanken
    try {
      URL url = new URL(
          "http://www.ecb.europa.eu/stats/eurofxref/eurofxref-daily.xml");
      URLConnection connection = url.openConnection();
      InputStream inn = connection.getInputStream();
      Scanner leser = new Scanner(new InputStreamReader(inn));
      while ( leser.hasNextLine() && (kurs == 0) ) {
        String txtLinje = leser.nextLine();
        String[] data = txtLinje.split("\'");
        // Mange linjer på fila inneholder ikke valutainfo, og hoppes over.
        // Leter opp den linjen med valutainfo som inneholder norske kroner
        if ( data.length > 3 && data[1].equals("NOK") )
          kurs = parseDouble(data[3]);
          // Kursen er funnet (kurs != 0), og lesingen avbrytes.
      }
      inn.close();
 
      String tallTxt = showInputDialog("Gi beløp i euro:");
      double euro = parseDouble(tallTxt);
 
      double kroner = euro * kurs;
 
      String ut = "Vekslebeløp: " + avrund(euro,2) + " EUR" + "\n" +
                  "Dagens kurs: " + avrund(kurs,3) + " NKR/EUR" + "\n" +
                  "Utbetaling:  " + avrund(kroner,2) + " NKR";
      showMessageDialog(null, ut);
    }
    catch(Exception e) {
      out.println("Feil med url og nettilgangen");
    }
  }
 
  public static double avrund(double tall, int d) {
    double tiPot = Math.pow(10,d);
    tall = (int)(tall*tiPot +0.5)/tiPot;
    return tall;
  }
 
}
 
Kildekode blir vist ved hjelp av GeSHi.