आमतौर पर ए ग्राफिकल यूज़र इंटरफ़ेस, पाठ फ़ील्ड होंगे जो उपयोगकर्ता को संख्यात्मक मान में दर्ज करने की उम्मीद कर रहे हैं। यह संख्या मान एक में समाप्त हो जाएगा तार ऑब्जेक्ट जो वास्तव में आपके प्रोग्राम की मदद नहीं करता है यदि आप कुछ अंकगणित करना चाहते हैं। सौभाग्य से, ऐसे रैपर वर्ग हैं जो उन स्ट्रिंग मानों को संख्याओं में बदलने के लिए तरीके प्रदान करते हैं और स्ट्रिंग वर्ग को फिर से बदलने की विधि है।
आवरण कक्षाएं
आदिम डेटा प्रकार संख्या के साथ सौदा (यानी, बाइट, इंट, डबल, फ्लोट, लॉन्ग, और शॉर्ट) सभी में कक्षा समतुल्य हैं। इन कक्षाओं को रैपर कक्षाओं के रूप में जाना जाता है क्योंकि वे एक आदिम डेटा प्रकार लेते हैं, और इसे कक्षा की कार्यक्षमता के साथ घेरते हैं। उदाहरण के लिए, डबल क्लास के पास अपने डेटा के रूप में दोहरा मूल्य होगा और उस मूल्य में हेरफेर करने के लिए तरीके प्रदान करेगा।
इन सभी रैपर वर्गों में एक विधि है, जिसे valueOf कहा जाता है। यह विधि एक स्ट्रिंग को तर्क के रूप में लेती है और आवरण वर्ग का एक उदाहरण देता है। उदाहरण के लिए, मान लें कि हमारे पास दस के मान के साथ एक स्ट्रिंग है:
स्ट्रिंग संख्या = "10";
एक स्ट्रिंग के रूप में इस संख्या का हमारे लिए कोई उपयोग नहीं है, इसलिए हम इसे पूर्णांक वस्तु में बदलने के लिए Integer वर्ग का उपयोग करते हैं:
Integer ConvertNumber = Integer.valueOf (संख्या);
अब संख्या का उपयोग संख्या के रूप में किया जा सकता है, न कि स्ट्रिंग के रूप में:
ConvertNumber = ConvertNumber + 20;
आप रूपांतरण को सीधे किसी आदिम डेटा प्रकार पर भी जा सकते हैं:
int ConvertNumber = Integer.valueOf (संख्या) .intValue ();
अन्य आदिम डेटा प्रकारों के लिए, आप केवल सही रैपर क्लास-बाइट, इंटेगर, डबल, फ्लोट, लॉन्ग शॉर्ट में स्लॉट करें।
ध्यान दें: आपको यह सुनिश्चित करना चाहिए कि स्ट्रिंग को उचित डेटा प्रकार में पार्स किया जा सकता है। यदि यह नहीं हो सकता है तो आप एक रनटाइम त्रुटि के साथ समाप्त हो जाएंगे। उदाहरण के लिए, "दस" को पूर्णांक में समेटने की कोशिश:
स्ट्रिंग संख्या = "दस";
int ConvertNumber = Integer.valueOf (संख्या) .intValue ();
नंबरफ़ॉर्मैट अपवाद को उत्पन्न करेगा क्योंकि संकलक को पता नहीं है कि "दस" को 10 माना जाता है।
अधिक समान रूप से एक ही त्रुटि होगी यदि आप भूल जाते हैं कि एक 'int' केवल संपूर्ण संख्याओं को पकड़ सकता है:
स्ट्रिंग संख्या = "10.5";
int ConvertNumber = Integer.valueOf (संख्या) .intValue ();
संकलक संख्या को कम नहीं करेगा यह सिर्फ यह सोचेगा कि यह एक 'int' में फिट नहीं होता है और यह संख्याFormatException को फेंकने का समय है।
संख्याओं को स्ट्रिंग्स में बदलना
स्ट्रिंग में एक संख्या बनाने के लिए उसी तरह के पैटर्न का पालन किया जाता है जैसे स्ट्रिंग वर्ग में एक वैल्यू विधि भी होती है। यह किसी भी आदिम डेटा प्रकार की संख्याओं को एक तर्क के रूप में ले सकता है और एक स्ट्रिंग का उत्पादन कर सकता है:
int संख्या 2 = 20;
स्ट्रिंग परिवर्तित = String.valueOf (numberTwenty);
जो "20" को सह-मूल्य के स्ट्रिंग मूल्य के रूप में रखता है।
या आप किसी भी रैपर वर्ग की स्ट्रींग विधि का उपयोग कर सकते हैं:
स्ट्रिंग परिवर्तित = Integer.toString (नंबरट्वेंटी);
सभी विधि प्रकारों के लिए स्ट्रीस्टिंग विधि आम है- अधिकतर यह केवल वस्तु का विवरण होता है। आवरण कक्षाओं के लिए, यह विवरण उनके द्वारा लिए गए वास्तविक मूल्य है। इस दिशा में, रूपांतरण थोड़ा अधिक मजबूत है। यदि इंटर्गर के बजाय डबल क्लास का उपयोग किया जाना था:
स्ट्रिंग परिवर्तित = Double.toString (नंबरट्वेंटी);
परिणाम एक कारण नहीं होगा रनटाइम त्रुटि. परिवर्तित चर में स्ट्रिंग "20.0" होगा।
जब आप होते हैं तो संख्याओं को परिवर्तित करने का एक अधिक सूक्ष्म तरीका भी होता है समतल स्ट्रिंग्स. यदि एक स्ट्रिंग का निर्माण किया जाना था जैसे:
स्ट्रिंग के बारे मेंडॉग = "मेरा कुत्ता" + नंबरट्वेंटी + "साल पुराना है।";
इंट संख्या का रूपांतरण स्वचालित रूप से किया जाता है।