Folgendes führt zu einem Exception:
String p="1,234";
Double d=Double.valueOf(p);
System.out.println(d);
Gibt es eine bessere Art und Weise zu analysieren , "1,234"zu erhalten 1.234als: p = p.replaceAll(",",".");?
replaceAll(",",".")alle Kommas durch Punkte. Wenn es keine Kommas gibt, tut es nichts. Double.valueOf()funktioniert (nur) mit Zeichenfolgen, die Punkt als Dezimaltrennzeichen verwenden. Hier ist nichts vom aktuellen Standardgebietsschema betroffen. docs.oracle.com/javase/8/docs/api/java/lang/…
replaceAll(",",".")ist, dass es nur funktioniert, wenn es ein einziges Komma gibt: dh: 1.234.567 wird werfen java.lang.NumberFormatException: multiple points. Eine Regex mit positivem Lookahead wird ausreichen. p.replaceAll(",(?=[0-9]+,)", "").replaceAll(",", ".")Weitere Informationen finden Sie unter