Lo siguiente resulta en un Exception:
String p="1,234";
Double d=Double.valueOf(p);
System.out.println(d);
¿Hay una mejor manera de analizar "1,234"para obtener 1.234que p = p.replaceAll(",",".");:?
replaceAll(",",".")reemplaza todas las comas con puntos. Si no hay comas, entonces no hace nada. Double.valueOf()funciona (solo) con cadenas que usan punto como separador decimal. Nada aquí se ve afectado por la configuración regional predeterminada actual. docs.oracle.com/javase/8/docs/api/java/lang/…
replaceAll(",",".")es que solo funcionará si hay una coma: es decir: 1,234,567 arrojará java.lang.NumberFormatException: multiple points. Una expresión regular con anticipación positiva será suficiente p.replaceAll(",(?=[0-9]+,)", "").replaceAll(",", ".")Más en: regular-expressions.info/lookaround.html