重複の可能性:
数値を安全かつロケールに応じて解析する
ロケールに依存した方法で 10 進数を含む文字列を検証するにはどうすればよいですか? NumberFormat.parse では許容量が多すぎます。また、Double.parseDouble は英語のロケールでのみ機能します。これが私が試したものです:
public static void main(String[] args) throws ParseException {
Locale.setDefault(Locale.GERMAN);
NumberFormat numberFormat = NumberFormat.getNumberInstance(Locale.getDefault());
Number parsed = numberFormat.parse("4,5.6dfhf");
System.out.println("parsed = " + parsed); // prints 4.5 instead of throwing ParseException
double v = Double.parseDouble("3,3"); // throws NumberFormatException, although correct
}