JAVA: Zahlen einlesen

Dieses Thema JAVA: Zahlen einlesen im Forum "Windows XP Forum" wurde erstellt von Michael_B, 13. Jan. 2006.

Thema: JAVA: Zahlen einlesen Hallo, ich will in JAVA Zahlen aus einer Datei einlesen und als Double-Objekte anlegen. Wie sollte ich eurer...

  1. 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. Hi

    Ist http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Double.html#valueOf(java.lang.String) auf die Locale angepasst oder funktioniert das nur mit einem . ?
    Sonst wäre das mein erster Vorschlag.

    Ansonsten musst du es vorher mit:
    http://java.sun.com/j2se/1.5.0/docs/api/java/text/NumberFormat.html
    umwandeln.

    Gruß, Michael
     
  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.
     
Die Seite wird geladen...

JAVA: Zahlen einlesen - Ähnliche Themen

Forum Datum
javascript: zeichen in textfeld zählen Webentwicklung, Hosting & Programmierung 16. Sep. 2002
Java Downloader lässt sich nicht sauber installieren Software: Empfehlungen, Gesuche & Problemlösungen 5. Okt. 2016
Ist Java runtime envirement 1.7.0 mit Java 6 verträglich? Windows XP Forum 11. Jan. 2016
Welchen Firefox und welche Java-Version ?? Windows 7 Forum 16. Dez. 2015
Java und Whatsapp "aktivieren" etwas Windows 7 Forum 18. Sep. 2015