Scanner क्लास का उपयोग Java उपयोगकर्ता इनपुट पढ़ने के लिए किया जाता है। Java Scanner java.util पैकेज में अंतर्निहित है, इसलिए इसका उपयोग करने के लिए किसी बाहरी लाइब्रेरी की आवश्यकता नहीं है। Scanner मानक इनपुट से टेक्स्ट पढ़ता है। यह टेक्स्ट मुख्य प्रोग्राम को वापस किया जाता है ताकि इसे संग्रहीत या अन्यथा हेरफेर किया जा सके।
Java में उपयोगकर्ता इनपुट कैसे प्राप्त करें, यह समझना एक महत्वपूर्ण कौशल है। उदाहरण के लिए, मान लें कि आप एक साइन-इन फॉर्म के साथ एक ऐप बना रहे हैं। आपको उपयोगकर्ता के लिए लॉगिन क्रेडेंशियल एकत्र करने के लिए उपयोगकर्ता इनपुट को संभालने की आवश्यकता होगी।
Java में, आप उपयोगकर्ता इनपुट प्राप्त करने के लिए Scanner क्लास का उपयोग कर सकते हैं जिसे आप तब अपने प्रोग्राम में प्रोसेस कर सकते हैं। यह ट्यूटोरियल कुछ उदाहरणों का उपयोग करके चर्चा करेगा कि Java Scanner क्लास का उपयोग करके उपयोगकर्ता इनपुट कैसे प्राप्त करें।
Java Scanner क्लास का उपयोग उपयोगकर्ता इनपुट एकत्र करने के लिए किया जाता है। Scanner java.util पैकेज का हिस्सा है, इसलिए इसे किसी बाहरी लाइब्रेरी को डाउनलोड किए बिना आयात किया जा सकता है। Scanner मानक इनपुट से टेक्स्ट पढ़ता है और इसे प्रोग्राम पर वापस करता है।
Scanner क्लास के साथ काम करने के लिए, आपको पहले इसे अपने कोड में आयात करना होगा। ऐसा करने के दो तरीके हैं:
- यदि आपको केवल java.util.Scanner क्लास के साथ काम करने की आवश्यकता है, तो आप Scanner क्लास को सीधे आयात कर सकते हैं।
- यदि आप java.util लाइब्रेरी में अन्य मॉड्यूल के साथ काम कर रहे हैं, तो आप पूरी लाइब्रेरी आयात करना चाह सकते हैं।
उपरोक्त प्रत्येक विधि के लिए कोड निम्नलिखित है:
import java.util.Scanner; import java.util.*;
कोड की पहली लाइन Scanner क्लास को आयात करती है। कोड की दूसरी लाइन java.util लाइब्रेरी के भीतर सभी पैकेजों को आयात करती है, जिसमें Scanner शामिल है।
यह ध्यान देने योग्य है कि Java में उपयोगकर्ता इनपुट डेटा प्राप्त करने के अन्य तरीके भी हैं। आप Java के BufferedReader, InputStreamReader, DataInputStream, और Console क्लास का उपयोग कर सकते हैं।
हालांकि, Scanner क्लास Java में उपयोगकर्ता इनपुट एकत्र करने की सबसे लोकप्रिय विधि है। इसलिए, हम इस लेख में उस क्लास पर ध्यान केंद्रित करेंगे।
Java उपयोगकर्ता इनपुट सिंटैक्स
आप Scanner क्लास का उपयोग करके उपयोगकर्ता इनपुट एकत्र कर सकते हैं। Scanner क्लास उस टेक्स्ट को पढ़ती है जिसे उपयोगकर्ता कंसोल में डालता है और उस टेक्स्ट को वापस प्रोग्राम पर भेजती है। Scanner Java उपयोगकर्ता इनपुट एकत्र करने की प्राथमिक विधि है।
Java Scanner क्लास आयात करने के बाद, आप इसका उपयोग उपयोगकर्ता इनपुट एकत्र करना शुरू करने के लिए कर सकते हैं। Java Scanner क्लास के लिए सिंटैक्स यहां दिया गया है:
Scanner input = new Scanner(System.in); int number = input.nextInt();
इस उदाहरण में, हमने input नामक एक चर बनाया जो उपयोगकर्ता द्वारा कंसोल में इनपुट किए गए अगले मान को एकत्र करता है। फिर हमने number नामक एक चर बनाया जो उपयोगकर्ता द्वारा कंसोल पर सबमिट किए गए मान को एकत्र करता है।
Java उपयोगकर्ता इनपुट उदाहरण
उदाहरण के लिए, मान लें कि हम एक स्थानीय कंप्यूटर स्टोर के लिए एक एप्लिकेशन बना रहे हैं जो उनकी इन्वेंट्री को ट्रैक करता है।
प्रबंधक ने हमें एक सरल प्रोग्राम बनाने के लिए कहा जिसका उपयोग वह दुकान की इन्वेंट्री सूची में आइटम जोड़ने के लिए कर सके। प्रबंधक दो मान इनपुट करने में सक्षम होना चाहती है: आइटम का नाम और उसकी मात्रा।
यहां वह कोड है जिसका उपयोग हम इस प्रोग्राम को बनाने के लिए करेंगे:
import java.util.Scanner; class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Product name: "); String product_name = input.next(); System.out.print("Value entered: " + product_name); System.out.print("Quantity: "); int quantity = input.nextInt(); System.out.print("Value entered: " + quantity); } }
हम जो पहला इनपुट स्वीकार करते हैं वह आइटम का नाम है। यह एक स्ट्रिंग होगी क्योंकि आइटम नाम टेक्स्ट-आधारित हैं और विभिन्न वर्णों का उपयोग करते हैं। नीचे दिए गए कोड में, हम इस स्ट्रिंग को कोड के साथ परिभाषित करते हैं: String product_name।
अगला इनपुट आइटम की मात्रा है। यह एक संख्या होगी। नीचे दिए गए कोड में, हम इस संख्या को कोड के साथ परिभाषित करते हैं: int quantity, जहां int पूर्णांक के लिए खड़ा है।
जब हम अपना कोड चलाते हैं और कुछ उदाहरण मान डालते हैं, तो प्रोग्राम निम्नलिखित प्रतिक्रिया लौटाता है:
Product name: 15-inch MacBook Pro 2019
Value entered: 15-inch MacBook Pro 2019
Quantity: 7
Value entered: 7
जैसा कि आप देख सकते हैं, हमारे प्रोग्राम ने उपयोगकर्ता का इनपुट एकत्र किया। इसने तब कंसोल पर उपयोगकर्ता द्वारा दर्ज मान को वापस कर दिया। यह हमें यह सत्यापित करने की अनुमति देता है कि हमारा प्रोग्राम काम कर रहा है।
हमारा Scanner Java प्रोग्राम कैसे काम करता है
आइए हमारे कोड को चरण-दर-चरण तोड़ते हैं।
- हम अपने कोड में Scanner लाइब्रेरी आयात करते हैं ताकि हम उपयोगकर्ता इनपुट प्राप्त कर सकें।
- हम Main नामक एक क्लास घोषित करते हैं जो हमारे प्रोग्राम के लिए कोड संग्रहीत करता है।
- हम Scanner input = new Scanner(System.in); का उपयोग करके Scanner क्लास को इनिशियलाइज़ करते हैं। इनपुट Java चर हमारे इनिशियलाइज़्ड स्कैनर को संग्रहीत करता है।
- हम कंसोल पर "Product name: " प्रिंट करते हैं और उपयोगकर्ता को input.next(); का उपयोग करके एक उत्पाद नाम सबमिट करने के लिए कहते हैं।
- हम उपयोगकर्ता द्वारा सबमिट किए गए उत्पाद नाम को कंसोल पर प्रिंट करते हैं।
- हम कंसोल पर Quantity: प्रिंट करते हैं और उपयोगकर्ता को input.nextInt(); का उपयोग करके स्टॉक में उत्पाद की मात्रा सबमिट करने के लिए प्रेरित करते हैं।
- हम quantity चर के मान को कंसोल पर प्रिंट करते हैं।
ध्यान दें कि हमने संख्याओं और स्ट्रिंग्स को एकत्र करने के लिए अलग-अलग कोड का उपयोग किया। जब हमने उत्पाद नाम एकत्र किया, तो हमने input.next(); का उपयोग किया, और जब हमने उत्पाद मात्रा एकत्र की, तो हमने input.nextInt(); का उपयोग किया।
Java Scanner: इनपुट प्रकार
ऊपर के हमारे उदाहरण में, हमने उपयोगकर्ता से दो प्रकार के डेटा एकत्र किए: एक स्ट्रिंग और एक पूर्णांक। जैसा कि उल्लेख किया गया है, हमें इन प्रकार के डेटा को एकत्र करने के लिए अलग-अलग कोड का उपयोग करना पड़ा।
स्ट्रिंग्स और पूर्णांक जैसे विभिन्न प्रकार के डेटा को अलग-अलग विधियों का उपयोग करके एकत्र किया जाता है। इसलिए, एक बूलियन एकत्र करने के लिए, आप एक फ्लोट एकत्र करने के लिए उपयोग किए जाने वाले कोड से अलग कोड का उपयोग करेंगे।
यहां एक तालिका दिखाई गई है जो Scanner क्लास का उपयोग करके Java में उपयोगकर्ता इनपुट एकत्र करने के लिए उपयोग की जाने वाली सभी विधियों को दर्शाती है:
| विधि | विधि द्वारा एकत्र किया जाने वाला मान का प्रकार |
|---|---|
| nextBoolean() | बूलियन |
| nextByte() | बाइट |
| nextDouble() | डबल |
| nextFloat() | फ्लोट |
| nextInt() | इंट |
| nextLine() | स्ट्रिंग |
| nextLong() | लॉन्ग |
| nextShort() | शॉर्ट |
यदि आप गलत इनपुट प्रकार डालते हैं, तो आपका प्रोग्राम InputMismatchException उठाएगा। उदाहरण के लिए, यदि आप एक ऐसे फ़ील्ड में डबल डालने का प्रयास करते हैं जो बूलियन एकत्र करता है, तो आपका प्रोग्राम एक अपवाद उठाएगा।
बूलियन मान एकत्र करना
आइए कंप्यूटर स्टोर पर वापस चलते हैं। मान लें कि हम अपने पहले प्रोग्राम को अपडेट करना चाहते थे और अपने कंप्यूटर स्टोर प्रबंधक को यह इनपुट करने की अनुमति देना चाहते थे कि उत्पाद डिस्प्ले पर है या स्टॉकरूम में रखा गया है।
ऐसा करने के लिए, हम on_display नामक एक नया मान एकत्र करना चाहते हैं जो इनपुट को बूलियन के रूप में संग्रहीत करेगा क्योंकि इसके केवल दो मान हो सकते हैं: सच या झूठ।
यहां वह कोड है जिसका उपयोग हम इस डेटा को एकत्र करने के लिए कर सकते हैं:
import java.util.Scanner; class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Product name: "); String product_name = input.next(); System.out.print("Value entered: " + product_name); System.out.print("Quantity: "); int quantity = input.nextInt(); System.out.print("Value entered: " + quantity); System.out.print("On display: "); boolean on_display = input.nextBoolean(); System.out.print("Value entered: " + on_display); } }
जब हम अपना कोड चलाते हैं और कुछ उदाहरण मान डालते हैं, तो प्रोग्राम निम्नलिखित प्रतिक्रिया लौटाता है:
Product name: 15-inch MacBook Pro 2019
Value entered: 15-inch MacBook Pro 2019
Quantity: 7
Value entered: 7
On display: true
Value entered: true
हमारा प्रोग्राम हमारे ऊपर के उदाहरण के समान ही काम करता है। हालांकि, इस बार हम उपयोगकर्ता से एक अतिरिक्त मान एकत्र करते हैं: कि क्या उनके द्वारा प्रोग्राम में डाला गया उत्पाद डिस्प्ले पर है। हम इस मान को उपयोगकर्ता से एकत्र करने के लिए nextBoolean() विधि का उपयोग करते हैं। फिर हम उस मान को कंसोल पर प्रिंट करते हैं।
निष्कर्ष
आप उपयोगकर्ता से इनपुट एकत्र करने के लिए Java के Scanner क्लास का उपयोग कर सकते हैं। Scanner क्लास उपयोगकर्ताओं से शॉर्ट मान, स्ट्रिंग्स, बूलियन और अन्य सहित विभिन्न डेटा प्रकारों को एकत्र करने में सक्षम है।
इस ट्यूटोरियल में, कुछ उदाहरणों का उपयोग करके, हमने Java Scanner क्लास का उपयोग करके उपयोगकर्ता इनपुट एकत्र करने का तरीका खोजा। इसके अलावा, हमने Scanner क्लास द्वारा प्रदान किए गए विभिन्न डेटा प्रकारों पर चर्चा की जिनका उपयोग हम उपयोगकर्ता इनपुट एकत्र करने के लिए कर सकते हैं।
Java में कोडिंग के बारे में अधिक जानने के लिए, हमारी How to Code in Java गाइड पढ़ें।