การติดตามมีผลใน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(",",".")ก็คือว่ามันจะทำงานเฉพาะถ้ามีเครื่องหมายจุลภาคเดียว: เช่น: 1234567 java.lang.NumberFormatException: multiple pointsจะโยน regex ที่มี lookahead เป็นบวกจะพอเพียงp.replaceAll(",(?=[0-9]+,)", "").replaceAll(",", ".")เพิ่มเติมได้ที่: regular-expressions.info/lookaround.html