निम्नलिखित में परिणाम है 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 फेंक देगा java.lang.NumberFormatException: multiple points। सकारात्मक अग्रदर्शी के साथ एक regex पर्याप्त होगा p.replaceAll(",(?=[0-9]+,)", "").replaceAll(",", ".")पर अधिक: regular-expressions.info/lookaround.html