इस प्रोग्राम में, आप यह जांचने के लिए विभिन्न तकनीकों को सीखेंगे कि कोई स्ट्रिंग जावा में संख्यात्मक है या नहीं।
इस उदाहरण को समझने के लिए, आपको निम्नलिखित जावा प्रोग्रामिंग विषयों का ज्ञान होना चाहिए:
- जावा स्ट्रिंग
- जावा एक्सेप्शन हैंडलिंग
उदाहरण 1: जांचें कि क्या एक स्ट्रिंग संख्यात्मक है
public class Numeric ( public static void main(String() args) ( String string = "12345.15"; boolean numeric = true; try ( Double num = Double.parseDouble(string); ) catch (NumberFormatException e) ( numeric = false; ) if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )
आउटपुट
12345.15 एक संख्या है
उपरोक्त कार्यक्रम में, हमारे पास एक String
नामित स्ट्रिंग है जिसमें जाँच की जाने वाली स्ट्रिंग है। हमारे पास एक बूलियन वैल्यू न्यूमेरिक है जो स्टोर करता है अगर अंतिम परिणाम संख्यात्मक है या नहीं।
कोशिश ब्लॉक में यदि स्ट्रिंग संख्या केवल शामिल की जांच करने के लिए, हम का उपयोग Double
की parseDouble()
विधि एक स्ट्रिंग परिवर्तित करने के लिए Double
।
यदि यह एक त्रुटि (यानी NumberFormatException
त्रुटि) फेंकता है , तो इसका मतलब है कि स्ट्रिंग संख्या नहीं है और संख्यात्मक सेट है false
। और, यह एक संख्या है।
हालांकि, यदि आप कई स्ट्रिंग्स के लिए जांचना चाहते हैं, तो आपको इसे फ़ंक्शन में बदलना होगा। और, तर्क अपवादों को फेंकने पर आधारित है, यह बहुत महंगा हो सकता है।
इसके बजाय, हम नियमित अभिव्यक्तियों की शक्ति का उपयोग करके यह जांच सकते हैं कि स्ट्रिंग संख्यात्मक है या नहीं जैसा कि नीचे दिखाया गया है।
उदाहरण 2: जांचें कि क्या कोई स्ट्रिंग संख्यात्मक है या नियमित अभिव्यक्ति का उपयोग नहीं कर रहा है (regex)
public class Numeric ( public static void main(String() args) ( String string = "-1234.15"; boolean numeric = true; numeric = string.matches("-?\d+(\.\d+)?"); if(numeric) System.out.println(string + " is a number"); else System.out.println(string + " is not a number"); ) )
आउटपुट
-1234.15 एक नंबर है
उपरोक्त कार्यक्रम में, एक ट्राइ-कैच ब्लॉक का उपयोग करने के बजाय, हम यह जांचने के लिए regex का उपयोग करते हैं कि स्ट्रिंग संख्यात्मक है या नहीं। यह स्ट्रिंग की matches()
विधि का उपयोग करके किया जाता है ।
में matches()
विधि,
-?
-
स्ट्रिंग में नकारात्मक संख्याओं के लिए शून्य या अधिक अनुमति देता है ।\d+
स्ट्रिंग की जांच में कम से कम 1 या अधिक संख्याएँ (\d
) होनी चाहिए ।(\.\d+)?
दिए गए पैटर्न(\.\d+)
में शून्य या अधिक की अनुमति देता है\.
जाँचता है कि स्ट्रिंग में.
(दशमलव अंक) हैं या नहीं- यदि हाँ, तो कम से कम एक या एक से अधिक संख्याओं का पालन करना चाहिए
\d+
।