次の結果になりますException
:
String p="1,234";
Double d=Double.valueOf(p);
System.out.println(d);
解析するためのより良い方法がある"1,234"
取得する1.234
以上は:p = p.replaceAll(",",".");
?
replaceAll(",",".")
すべてのコンマをドットに置き換えます。コンマがない場合は、何もしません。Double.valueOf()
小数点を小数点として使用する文字列でのみ機能します。ここでは、現在のデフォルトロケールの影響を受けません。docs.oracle.com/javase/8/docs/api/java/lang/...
replaceAll(",",".")
は、単一のカンマがある場合にのみ機能することです。つまり、1,234,567がスローされ java.lang.NumberFormatException: multiple points
ます。肯定的な先読みを持つ正規表現で十分ですp.replaceAll(",(?=[0-9]+,)", "").replaceAll(",", ".")
。詳細:regular-expressions.info/lookaround.html