다음과 같은 결과가 발생합니다 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이 throw java.lang.NumberFormatException: multiple points됩니다. 긍정적 인 lookahead를 가진 정규 표현식으로 충분할 것입니다 p.replaceAll(",(?=[0-9]+,)", "").replaceAll(",", "."). regular-expressions.info/lookaround.html