JAVA: Zahlen einlesen

  • #1
M

Michael_B

Bekanntes Mitglied
Themenersteller
Dabei seit
21.09.2002
Beiträge
860
Reaktionspunkte
0
Ort
Köln
Hallo,

ich will in JAVA Zahlen aus einer Datei einlesen und als Double-Objekte anlegen. Wie sollte ich eurer Meinung nach vorgehen, wenn ich das Format der Zahlen nicht kenne bzw. dynamisch ermitteln möchte. Es ist also möglich, dass die Zahlen in Datei X mit dem Komma als Dezimalzeichen und die in Datei Y mit dem Punkt als Dezimalzeichen vorkommen.

Für Anregungen wär ich dankbar.
M.
 
  • #2
  • #3
Hi,

so wie es aussieht, ist weder valueOf(String s) noch parseDouble(String s) auf die Locale bezogen, sondern verwendet immer die amerikanische Variante (mit dem . als Dezimaltrenner).
Aber offenbar hab ich mich ungenügend ausgedrückt. Ich möchte halt wissen, welche möglichen Fehlerursachen ich evtl. abfangen sollte, bei dem Versuch zu ermitteln, mit welcher Locale ich die Zahl einlesen sollte. Das Problem ist also nicht das Einlesen der Zahlen, sondern das Ermitteln der Locale...

Folgende Fehlerquelle könnte ich mir vorstellen: Wenn ich z. B. einfach den ersten Wert aus der Datei nehme (immernoch als String), der laut Dateiformat eine Zahl sein müsste und lediglich das Vorhandensein eines , prüfe, so könnten ja zweierlei Fälle eintreten:
1. das Komma ist das Dezimaltrennzeichen >> Locale.GERMANY
2. das Komma ist das Tausender-Trennzeichen >> Locale.US (bzw. Default-Locale, die IMO die US ist, oder?)

Lese ich also einen String 1,234 so könnte es sich um die US-Zahl 1234 handeln (eintausendzweihundertvierunddreissig), aber auch um die deutsche Zahl 1,234 (eins komma zwei drei vier)
Analog: Lese ich 1.234 könnte es eine US-Zahl zwischen 1 und 2 sein, aber evtl. auch eine deutsche Zahl über 1000 (mit Tausender-Trennzeichen)

Wenn ich in einem Wert sowohl das , als auch den . finde (1,234.56 bzw. 1.234,56) kann ich ja doch mit 99.9%iger Sicherheit die korrekte Locale ermitteln...

Sobald die Locale ermittelt ist, müsste man dann den Umweg über ein Number-Objekt gehen, das per http://java.sun.com/j2se/1.5.0/docs/api/java/text/NumberFormat.html#parse(java.lang.String) erzeugt wird.

Lg
M.
 
Thema:

JAVA: Zahlen einlesen

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.838
Beiträge
707.961
Mitglieder
51.491
Neuestes Mitglied
haraldmuc
Oben