उपयोगकर्ता input का सत्यापन
अमान्य input को सहजता से संभालें
उपयोगकर्ता input का सत्यापन, CoddyKit पर Java Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Java Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
इनपुट पर कभी आँख मूँदकर भरोसा न करें
उपयोगकर्ता गलत चीज़ें टाइप कर सकते हैं: जहाँ संख्याएँ होनी चाहिए वहाँ अक्षर, खाली स्थान या सीमा से बाहर के मान। सुदृढ़ प्रोग्राम इनपुट की जाँच करते हैं और क्रैश होने के बजाय फिर से पूछते हैं।
यह पाठ Scanner के साथ सहज इनपुट-जाँच के तरीकों को दिखाता है।
पढ़ने से पहले जाँच करें
सबसे सरल सुरक्षा-जाँच hasNextInt() है। पूर्णांक तभी पढ़ें जब वह वास्तव में उपलब्ध हो।
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("42");
if (scanner.hasNextInt()) {
System.out.println("Got: " + scanner.nextInt());
} else {
System.out.println("Please enter a number");
}
scanner.close();
}
}मान्य मान मिलने तक लूप
पुनः प्रयास करने वाला लूप तब तक पूछता रहता है जब तक कोई मान्य पूर्णांक न मिल जाए। जब टोकन गलत हो, तो उसे next() से हटाकर आगे बढ़ें।
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("abc xyz 50");
int value = -1;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
value = scanner.nextInt();
break;
}
scanner.next();
}
System.out.println("Accepted: " + value);
scanner.close();
}
}सीमा की जाँच
प्रकार के अतिरिक्त, मानों का किसी सीमा के भीतर होना भी आवश्यक हो सकता है। संख्या पढ़ने के बाद उसे स्वीकार करने से पहले जाँच लें।
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("7");
int n = scanner.nextInt();
if (n >= 1 && n <= 10) {
System.out.println("Valid: " + n);
} else {
System.out.println("Out of range");
}
scanner.close();
}
}पार्सिंग के लिए Try-Catch
एक अन्य तरीका पूरी पंक्ति पढ़कर उसे पार्स करता है और अमान्य पाठ के लिए NumberFormatException पकड़ता है। इससे बफ़र सरल रहता है।
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("notanumber");
String line = scanner.nextLine();
try {
int n = Integer.parseInt(line.trim());
System.out.println("Parsed: " + n);
} catch (NumberFormatException e) {
System.out.println("Invalid number: " + line);
}
scanner.close();
}
}गैर-खाली पाठ की जाँच
पाठ के इनपुट में खाली मान अस्वीकार करें। isBlank() खाली या केवल रिक्त स्थान वाली स्ट्रिंग के लिए true लौटाता है।
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(" ");
String name = scanner.nextLine();
if (name.isBlank()) {
System.out.println("Name cannot be empty");
} else {
System.out.println("Hello, " + name);
}
scanner.close();
}
}विकल्प की जाँच
मेनू के विकल्पों के लिए, कोई कार्य करने से पहले सुनिश्चित करें कि मान अनुमत विकल्पों में से एक है।
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("y");
String choice = scanner.next().toLowerCase();
if (choice.equals("y") || choice.equals("n")) {
System.out.println("You chose: " + choice);
} else {
System.out.println("Please enter y or n");
}
scanner.close();
}
}पुनः उपयोग योग्य जाँच-विधि
जाँच को एक विधि में अलग कर दें ताकि तर्क का पुनः उपयोग किया जा सके। यहाँ एक विधि जाँचती है कि आयु उचित सीमा के भीतर है।
public class Main {
static boolean isValidAge(int age) {
return age >= 0 && age <= 120;
}
public static void main(String[] args) {
System.out.println(isValidAge(30));
System.out.println(isValidAge(-5));
}
}प्रकार और सीमा को मिलाना
वास्तविक जाँच में अक्सर प्रकार की जाँच, सीमा की जाँच और पुनः प्रयास करने वाले लूप को एक सुदृढ़ प्रक्रिया में मिलाया जाता है।
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner("abc 200 45");
int valid = -1;
while (scanner.hasNext()) {
if (scanner.hasNextInt()) {
int n = scanner.nextInt();
if (n >= 1 && n <= 100) {
valid = n;
break;
}
} else {
scanner.next();
}
}
System.out.println("Final: " + valid);
scanner.close();
}
}स्पष्ट त्रुटि संदेश
अच्छी जाँच उपयोगकर्ता को उपयोगी प्रतिक्रिया भी देती है। सामान्य विफलता संदेश देने के बजाय उन्हें ठीक-ठीक बताएँ कि क्या गलत था और क्या अपेक्षित है।
public class Main {
static String validate(String input) {
if (input.isBlank()) return "Input is empty";
if (!input.matches("\\d+")) return "Only digits allowed";
return "OK";
}
public static void main(String[] args) {
System.out.println(validate(""));
System.out.println(validate("12a"));
System.out.println(validate("123"));
}
}जाँच की रणनीति
hasNext परिवार की विधियों या try-catch से प्रकार की जाँच करें, सीमा और खालीपन की जाँच करें, मान्य मान मिलने तक लूप चलाएँ और त्रुटियों को हमेशा स्पष्ट रूप से समझाएँ।
त्वरित जाँच
इनपुट की जाँच संबंधी अपने ज्ञान की जाँच करें।
पुनरावलोकन
आपने इनपुट की सहज रूप से जाँच करना सीखा:
hasNextIntसे सुरक्षा-जाँच करें या try-catch के भीतर पार्स करें- पुनः प्रयास करने वाले लूप का उपयोग करें और गलत टोकन को
next()से हटाएँ - सीमाओं की जाँच करें और
isBlankसे खाली पाठ अस्वीकार करें - पुनः उपयोग योग्य जाँच-विधियाँ अलग बनाएँ
- स्पष्ट और विशिष्ट त्रुटि संदेश दें
एआई शिक्षक के साथ Java सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 104
- पाठ
- 374
अक्सर पूछे जाने वाले प्रश्न
क्या “उपयोगकर्ता input का सत्यापन” पाठ निःशुल्क है?
हाँ—“उपयोगकर्ता input का सत्यापन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Java Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Java Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“उपयोगकर्ता input का सत्यापन” में मैं क्या सीखूँगा?
अमान्य input को सहजता से संभालें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Java Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Java Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Java Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“उपयोगकर्ता input का सत्यापन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Java Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Java Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Scanner से input पढ़ना
- संख्याएँ और पंक्तियाँ पढ़ना
- उपयोगकर्ता input का सत्यापन
- BufferedReader विकल्प