2012-07-21 17 views
7

जावा का NumberFormat 1) गैर थ्रेड-सुरक्षित (जिसे ThreadLocal के साथ काम किया जा सकता है); 2) सबसे सरल उपयोग के मामले के लिए inconvenient to use correctly जब मुझे पता है कि क्या स्ट्रिंग पूर्णांक, लंबे, या डबल को शामिल करना चाहिए, और चाहते हैं एक API तरह:पार्सिंग संख्या सुरक्षित रूप से और लोकेल-सेंसिटिवली

int parseInt(String str, Locale locale) throws ParseException; 
int parseInt(String str, int defaultValue, Locale locale); 
long parseLong(String str, Locale locale) throws ParseException; 
long parseLong(String str, long defaultValue, Locale locale); 
double parseDouble(String str, Locale locale) throws ParseException; 
double parseDouble(String str, double defaultValue, Locale locale); 

जहां अपवाद है जब स्ट्रिंग पूरी तरह से पार्स नहीं है फेंक दिया है। जाहिर है, ऐसे रैपर को लिखना आसान है, लेकिन मुझे गुवा या अपाचे कॉमन्स लैंग में कोई नहीं मिला। क्या मुझे बस याद आया? या इसके लिए एक और अधिक कम या कम मानक समाधान है?

+0

'Integer.parseInt' और भाइयों के साथ आपका क्या समस्या है? –

+0

मुझे लगता है कि यह अलग-अलग संख्या प्रारूपों का समर्थन नहीं करता है? –

+0

@ मार्कोटोपोलनिक वे लोकेल-स्वतंत्र हैं, इसलिए सही दशमलव विभाजक, आदि का उपयोग न करें –

उत्तर

3

मुझे मिला एक विकल्प Apache Commons Validator (अभी भी गैर-थ्रेड-सुरक्षित) है।

संबंधित मुद्दे