In Java kann die Verwendung des Standard-NumberFormats zu Fehlern beim Parsen von Zeichenfolgen mit Kommas als Dezimaltrennzeichen führen. Betrachten Sie den folgenden Code:
String p = "1,234"; Double d = Double.valueOf(p); System.out.println(d);
Dieser Code löst eine NumberFormatException aus. Um dieses Problem zu lösen, besteht eine praktische Lösung darin, das Komma mithilfe von p.replaceAll(",", ".") durch einen Punkt zu ersetzen. Gibt es jedoch einen effizienteren Weg?
Die Klasse java.text.NumberFormat bietet eine ausgefeilte Lösung. Sie können damit die gebietsschemaspezifischen Formatierungsregeln festlegen und so sicherstellen, dass das Dezimaltrennzeichen korrekt erkannt wird. So verwenden Sie NumberFormat:
NumberFormat format = NumberFormat.getInstance(Locale.FRANCE); Number number = format.parse("1,234"); double d = number.doubleValue();
In diesem Code instanziieren wir ein NumberFormat für das französische Gebietsschema, wobei das Komma als Dezimaltrennzeichen verwendet wird. Die parse()-Methode wandelt die Zeichenfolge in ein Number-Objekt um, das wir dann mit doubleValue() in ein Double umwandeln.
Um mehrsprachige Anwendungen zu unterstützen, verwenden Sie die Folgender Code:
NumberFormat format = NumberFormat.getInstance(Locale.getDefault());
Dadurch wird ein NumberFormat für das Standardgebietsschema erstellt, das das Gebietsschema des Betriebs des aktuellen Benutzers ist System.
Das obige ist der detaillierte Inhalt vonWie kann man Doubles mit Komma-Dezimaltrennzeichen in Java effizient analysieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!