Berikut ini menghasilkan Exception:
String p="1,234";
Double d=Double.valueOf(p);
System.out.println(d);
Apakah ada cara yang lebih baik untuk menguraikan "1,234"untuk mendapatkan 1.234daripada p = p.replaceAll(",",".");:?
replaceAll(",",".")mengganti semua koma dengan titik. Jika tidak ada koma, maka tidak melakukan apa pun. Double.valueOf()berfungsi (hanya) dengan string yang menggunakan titik sebagai pemisah desimal. Tidak ada yang terpengaruh oleh lokal default saat ini. docs.oracle.com/javase/8/docs/api/java/lang/…
replaceAll(",",".")adalah bahwa itu hanya akan berfungsi jika ada satu koma: yaitu: 1.234.567 akan melempar java.lang.NumberFormatException: multiple points. Sebuah regex dengan lookahead positif akan mencukupi p.replaceAll(",(?=[0-9]+,)", "").replaceAll(",", ".")More at: regular-expressions.info/lookaround.html