जावा में उपयोगकर्ता इनपुट कैसे प्राप्त करें?


317

मैंने एक कैलकुलेटर बनाने का प्रयास किया, लेकिन मैं इसे काम नहीं कर सकता क्योंकि मुझे नहीं पता कि उपयोगकर्ता इनपुट कैसे प्राप्त करें

मैं जावा में उपयोगकर्ता इनपुट कैसे प्राप्त कर सकता हूं?


8
उह, तुम्हारा प्रश्न क्या है? आपने अभी कुछ कोड पोस्ट किए हैं और कहा है कि आपको पॉइंटर्स पसंद नहीं हैं। समझ में नहीं आने वाले पॉइंटर्स अभी भी आपको जावा में काटने के लिए वापस आ सकते हैं यदि आप संदर्भ से नहीं समझते हैं और मूल्य से गुजरते हैं।
स्कॉट

4
आपको जावा को एक पुस्तक को पढ़ने की कोशिश करनी चाहिए, जावा हाउ टू प्रोग्राम, 7 / ई एक अच्छा है
मार्को अविल्स

जवाबों:


333

आप आवश्यकताओं के आधार पर निम्न विकल्पों में से किसी का उपयोग कर सकते हैं।

Scanner कक्षा

import java.util.Scanner; 
Scanner scan = new Scanner(System.in);
String s = scan.next();
int i = scan.nextInt();

BufferedReaderऔर InputStreamReaderकक्षाएं

import java.io.BufferedReader;
import java.io.InputStreamReader;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int i = Integer.parseInt(s);

DataInputStream कक्षा

import java.io.DataInputStream;
DataInputStream dis = new DataInputStream(System.in);
int i = dis.readInt();

readLineसे विधि DataInputStreamवर्ग की गई है पदावनत । स्ट्रिंग मूल्य प्राप्त करने के लिए, आपको बफ़रड्रेडर के साथ पिछले समाधान का उपयोग करना चाहिए


Console कक्षा

import java.io.Console;
Console console = System.console();
String s = console.readLine();
int i = Integer.parseInt(console.readLine());

जाहिर है, यह विधि कुछ आईडीई में अच्छी तरह से काम नहीं करती है।


4
ध्यान दें कि DataInputStreamबाइनरी डेटा पढ़ने के लिए है। का उपयोग करते हुए readIntपर System.inहै नहीं चरित्र डेटा से एक पूर्णांक पार्स, यह बजाय यूनिकोड मूल्यों और वापसी बकवास पुनर्व्याख्या होगा। DataInput#readIntविवरण के लिए देखें ( DataInputStreamऔजार DataInput)।
रेडियोडफ़

3
यह बहुत अच्छा है, पूर्णता के लिए आवश्यक आयातों को देखना पसंद करेंगे। यह वास्तव में उन लोगों की भी मदद करेगा जिन्हें इसकी आवश्यकता है।
नाइटहॉक

1
यह उत्तर बहुत अधिक सहायक होगा यदि यह उल्लेख करता है कि वास्तव में क्या आवश्यकताएं थीं। मैंने इसे ठीक करने का प्रयास करने के लिए एक इनाम शुरू किया है।
temporary_user_name

405

सबसे सरल तरीकों में से एक Scannerवस्तु का उपयोग करना है:

import java.util.Scanner;

Scanner reader = new Scanner(System.in);  // Reading from System.in
System.out.println("Enter a number: ");
int n = reader.nextInt(); // Scans the next token of the input as an int.
//once finished
reader.close();

13
यदि आप System.in के लिए खोले गए स्कैनर ऑब्जेक्ट को बंद करते हैं, तो आप प्रोग्राम समाप्त होने तक System.in को फिर से खोल नहीं पाएंगे।
ksnortum

@ksnortum क्या मैं फिर से खोल सकता हूं Scanner reader1 = new Scanner(System.in);?
अभिजीत जगताप

कोशिश करो। मुझे ऐसा नहीं लगता।
ksnortum

1
हाँ, ksnortum सही है, आपको एक NoSuchElementException मिलती है। इसे बंद करने के बाद आप System.in को दोबारा क्यों खोल सकते हैं, इसके बारे में कुछ उपयोगी सवाल ।
temporary_user_name

45

आप स्कैनर वर्ग या कंसोल वर्ग का उपयोग कर सकते हैं

Console console = System.console();
String input = console.readLine("Enter input:");

55
मुझे लगता है कि अगर यह कोड ग्रहण से चलता है तो System.console शून्य हो जाएगा।
कोडर

13
मेरा मानना ​​है कि यह लगभग किसी भी आईडीई से चलने वाली त्रुटि लौटाएगा। पुष्टि की कि intelliJ एक ही मुद्दा है।
डेन ब्रैडबरी

1
लेकिन ग्रहण में यह अशक्त क्यों है?
मार्क डब्ल्यू

20

आप उपयोग करके उपयोगकर्ता इनपुट प्राप्त कर सकते हैं BufferedReader

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String accStr;  

System.out.println("Enter your Account number: ");
accStr = br.readLine();

यह एक Stringमूल्य को संग्रहीत करेगा accStrताकि आपको इसे एक intप्रयोग के लिए पार्स करना पड़े Integer.parseInt

int accInt = Integer.parseInt(accStr);

17

यहां बताया गया है कि आप कीबोर्ड इनपुट कैसे प्राप्त कर सकते हैं:

Scanner scanner = new Scanner (System.in);
System.out.print("Enter your name");  
name = scanner.next(); // Get what the user types.

14

आप उपयोगकर्ता का नाम पूछने के लिए एक सरल प्रोग्राम बना सकते हैं और प्रिंट कर सकते हैं कि कभी उत्तर उपयोग इनपुट।

या उपयोगकर्ता से दो नंबर दर्ज करने के लिए कहें और आप उन संख्याओं को जोड़, गुणा, घटा, या विभाजित कर सकते हैं और एक कैलकुलेटर के व्यवहार की तरह उपयोगकर्ता इनपुट के लिए उत्तर प्रिंट कर सकते हैं।

तो वहां आपको Scanner class की जरूरत है। आपको import java.util.Scanner;कोड का उपयोग करना होगा

Scanner input = new Scanner(System.in);

इनपुट एक चर नाम है।

Scanner input = new Scanner(System.in);

System.out.println("Please enter your name : ");
s = input.next(); // getting a String value

System.out.println("Please enter your age : ");
i = input.nextInt(); // getting an integer

System.out.println("Please enter your salary : ");
d = input.nextDouble(); // getting a double

यह कैसे अलग है देखें: input.next();, i = input.nextInt();,d = input.nextDouble();

एक स्ट्रिंग के अनुसार, int और एक डबल बाकी के लिए एक ही तरह बदलता है। अपने कोड के शीर्ष पर आयात विवरण मत भूलना।

ब्लॉग पोस्ट "स्कैनर वर्ग और उपयोगकर्ता इनपुट प्राप्त करना" भी देखें ।


12

सबसे अच्छा दो विकल्प हैं BufferedReaderऔर Scanner

सबसे व्यापक रूप से उपयोग की जाने वाली विधि है Scannerऔर मैं व्यक्तिगत रूप से इसकी सादगी और आसान कार्यान्वयन के कारण पसंद करता हूं, साथ ही साथ पाठ को आदिम डेटा में पार्स करने के लिए इसकी शक्तिशाली उपयोगिता।

स्कैनर का उपयोग करने के लाभ

  • Scannerकक्षा का उपयोग करना आसान है
  • संख्याओं का आसान इनपुट (इंट, शॉर्ट, बाइट, फ्लोट, लॉन्ग और डबल)
  • अपवाद अनियंत्रित हैं जो अधिक सुविधाजनक है। यह प्रोग्रामर पर निर्भर है कि वह सभ्य है, और अपवादों को निर्दिष्ट या पकड़ सकता है।
  • लाइनों, सफेद रिक्त स्थान और regex- सीमांकित टोकन को पढ़ने में सक्षम है

BufferedInputStream के लाभ


कुल मिलाकर प्रत्येक इनपुट पद्धति के अलग-अलग उद्देश्य हैं।

  • यदि आप इनपुट कर रहे हैं तो बड़ी मात्रा में डेटा BufferedReaderआपके लिए बेहतर हो सकता है

  • यदि आप बहुत से नंबर इनपुट कर रहे हैं Scannerतो स्वचालित पार्सिंग करता है जो बहुत सुविधाजनक है

अधिक बुनियादी उपयोगों के लिए मैं सिफारिश करूंगा Scannerक्योंकि इसका उपयोग करना आसान है और कार्यक्रमों को लिखना आसान है। यहाँ कैसे बनाने के लिए एक त्वरित उदाहरण है Scanner। मैं कैसे उपयोग करने के लिए नीचे एक व्यापक उदाहरण प्रदान करेगाScanner

Scanner scanner = new Scanner (System.in); // create scanner
System.out.print("Enter your name");       // prompt user
name = scanner.next();                     // get user input

(के बारे में अधिक जानकारी के लिए BufferedReaderदेखें एक BufferedReader का उपयोग कैसे करें और देखो वर्ण का पढ़ना लाइनों )


java.util.Scanner

import java.util.InputMismatchException; // import the exception catching class
import java.util.Scanner; // import the scanner class

public class RunScanner {

    // main method which will run your program
    public static void main(String args[]) {

        // create your new scanner
        // Note: since scanner is opened to "System.in" closing it will close "System.in". 
        // Do not close scanner until you no longer want to use it at all.
        Scanner scanner = new Scanner(System.in);

        // PROMPT THE USER
        // Note: when using scanner it is recommended to prompt the user with "System.out.print" or "System.out.println"
        System.out.println("Please enter a number");

        // use "try" to catch invalid inputs
        try {

            // get integer with "nextInt()"
            int n = scanner.nextInt();


            System.out.println("Please enter a decimal"); // PROMPT
            // get decimal with "nextFloat()"
            float f = scanner.nextFloat();


            System.out.println("Please enter a word"); // PROMPT
            // get single word with "next()"
            String s = scanner.next();

            // ---- Note: Scanner.nextInt() does not consume a nextLine character /n 
            // ---- In order to read a new line we first need to clear the current nextLine by reading it:
            scanner.nextLine(); 
            // ----
            System.out.println("Please enter a line"); // PROMPT
            // get line with "nextLine()"
            String l = scanner.nextLine();


            // do something with the input
            System.out.println("The number entered was: " + n);
            System.out.println("The decimal entered was: " + f);
            System.out.println("The word entered was: " + s);
            System.out.println("The line entered was: " + l);


        }
        catch (InputMismatchException e) {
            System.out.println("\tInvalid input entered. Please enter the specified input");
        }

        scanner.close(); // close the scanner so it doesn't leak
    }
}

नोट: अन्य वर्ग जैसे कि Consoleऔर DataInputStreamव्यवहार्य विकल्प भी हैं।

Consoleपासवर्ड को पढ़ने की क्षमता जैसी कुछ शक्तिशाली विशेषताएं हैं, हालांकि, सभी आईडीई (जैसे कि ग्रहण) में उपलब्ध नहीं है। ऐसा होने का कारण यह है क्योंकि ग्रहण आपके एप्लिकेशन को एक पृष्ठभूमि प्रक्रिया के रूप में चलाता है न कि सिस्टम कंसोल के साथ एक शीर्ष-स्तरीय प्रक्रिया के रूप में। यहांConsole कक्षा को कैसे लागू किया जाए, इस पर एक उपयोगी उदाहरण का लिंक दिया गया है ।

DataInputStreamमुख्य रूप से एक इनपुट-स्ट्रीम तरीके से, एक अंतर्निहित इनपुट स्ट्रीम से, आदिम डेटाटाइप के रूप में इनपुट पढ़ने के लिए उपयोग किया जाता है। DataInputStreamआमतौर पर बाइनरी डेटा पढ़ने के लिए उपयोग किया जाता है। यह कुछ डेटा प्रकारों को पढ़ने के लिए सुविधा विधियाँ भी प्रदान करता है। उदाहरण के लिए, इसमें UTF स्ट्रिंग पढ़ने की एक विधि है, जिसमें उनके भीतर कितनी भी लाइनें हो सकती हैं।

हालांकि, यह एक अधिक जटिल वर्ग है और इसे लागू करने के लिए कठिन है इसलिए शुरुआती लोगों के लिए अनुशंसित नहीं है। यहाँ एक उपयोगी उदाहरण के लिए एक कड़ी है कि कैसे लागू करें DataInputStream


मैं आगे जा रहा हूं और विजेता को यहां बुलाऊंगा। ज्यादातर बहुत बढ़िया जवाब है, हालांकि मैं चाहता हूं कि यह उस समय और अधिक गहराई में चला जाए जब मैं इसका उपयोग करना चाहता हूं DataInputStream- इसका वर्णन उपयोग मामले के लिए समान लगता है Scanner: डेटा को आदिम में पढ़ना। इसके अलावा, यदि कोई व्यक्ति उस चरण में है जहां वे उपयोगकर्ता इनपुट प्राप्त करना नहीं जानते हैं, तो संभवत: वे यह भी नहीं समझते हैं कि मानक पुस्तकालय के कुछ हिस्से कुछ आईडीई में क्यों उपलब्ध नहीं होंगे। निश्चित रूप से यह मेरे लिए मामला है - Consoleअनुपलब्ध क्यों है ?
temporary_user_name

1
आपकी प्रतिक्रिया के लिए धन्यवाद, मैंने अधिक स्पष्टीकरण शामिल करने के लिए अपडेट करने का प्रयास किया है। देखें quora.com/... और stackoverflow.com/questions/27601520/...
JFreeman

उत्तम। अब यह बिल्कुल इस सवाल का जवाब है जो सभी के लिए आवश्यक है। अगर केवल कुछ तरीके थे तो मैं इसे शीर्ष पर पहुंचा सकता था।
temporary_user_name

खैर, जो कोई भी नीचे स्क्रॉल करने के लिए तैयार है, उसे एक अच्छा जवाब मिलेगा और धीरे-धीरे यह ऊपर चला जाएगा :)
जेफ्रीमैन

1
धन्यवाद। विस्तृत जानकारीपूर्ण उत्तर। जोड़ने से try-with-resourceयह बेहतर होगा।
सौरभ

8

यहां, प्रोग्राम उपयोगकर्ता को एक नंबर दर्ज करने के लिए कहता है। उसके बाद, प्रोग्राम अंकों की संख्या और अंकों के योग को प्रिंट करता है।

import java.util.Scanner;

public class PrintNumber {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int num = 0;
        int sum = 0;

        System.out.println(
            "Please enter a number to show its digits");
        num = scan.nextInt();

        System.out.println(
            "Here are the digits and the sum of the digits");
        while (num > 0) {
            System.out.println("==>" + num % 10);
            sum += num % 10;
            num = num / 10;   
        }
        System.out.println("Sum is " + sum);            
    }
}

8

एक पंक्ति या एक स्ट्रिंग को पढ़ने के लिए, आप निम्न BufferedReaderके साथ संयुक्त वस्तु का उपयोग कर सकते हैं InputStreamReader:

BufferedReader bufferReader = new BufferedReader(new InputStreamReader(System.in));
String inputLine = bufferReader.readLine();

6

यहाँ सवाल का उपयोग कर अपने कार्यक्रम है java.util.Scanner:

import java.util.Scanner;

public class Example {
    public static void main(String[] args) {
        int input = 0;
        System.out.println("The super insano calculator");
        System.out.println("enter the corrosponding number:");
        Scanner reader3 = new Scanner(System.in);
        System.out.println(
            "1. Add | 2. Subtract | 3. Divide | 4. Multiply");

        input = reader3.nextInt();

        int a = 0, b = 0;

        Scanner reader = new Scanner(System.in);
        System.out.println("Enter the first number");
        // get user input for a
        a = reader.nextInt();

        Scanner reader1 = new Scanner(System.in);
        System.out.println("Enter the scend number");
        // get user input for b
        b = reader1.nextInt();

        switch (input){
            case 1:  System.out.println(a + " + " + b + " = " + add(a, b));
                     break;
            case 2:  System.out.println(a + " - " + b + " = " + subtract(a, b));
                     break;
            case 3:  System.out.println(a + " / " + b + " = " + divide(a, b));
                     break;
            case 4:  System.out.println(a + " * " + b + " = " + multiply(a, b));
                     break;
            default: System.out.println("your input is invalid!");
                     break;
        }
    }

    static int      add(int lhs, int rhs) { return lhs + rhs; }
    static int subtract(int lhs, int rhs) { return lhs - rhs; }
    static int   divide(int lhs, int rhs) { return lhs / rhs; }
    static int multiply(int lhs, int rhs) { return lhs * rhs; }
}

3
इतने सारे Scannerऑब्जेक्ट बनाने की कोई आवश्यकता नहीं है ; एक पर्याप्त होता।
19

5

Systemइनपुट प्राप्त करने के लिए कक्षा का उपयोग करें ।

http://fresh2refresh.com/java-tutorial/java-input-output/ :

कीबोर्ड से डेटा कैसे स्वीकार किया जाता है?

हमें तीन वस्तुओं की आवश्यकता है,

  1. System.in
  2. InputStreamReader
  3. BufferedReader

    • InputStreamReader और BufferedReader java.io पैकेज में कक्षाएं हैं।
    • डेटा को System.in द्वारा कीबोर्ड से बाइट्स के रूप में प्राप्त किया जाता है जो एक इनपुटस्ट्रीम ऑब्जेक्ट है।
    • तब InputStreamReader बाइट्स पढ़ता है और उन्हें वर्णों में डिकोड करता है।
    • फिर अंत में बफ़रड्रेडर ऑब्जेक्ट एक कैरेक्टर-इनपुट स्ट्रीम से टेक्स्ट पढ़ता है, कैरेक्टर को बफ़र करता है ताकि कैरेक्टर्स, एरे, और लाइन्स की कुशल रीडिंग प्रदान की जा सके।
InputStreamReader inp = new InputStreamReader(system.in);
BufferedReader br = new BufferedReader(inp);

1
System.in(कोड की पहली पंक्ति int) Sवर्ग के नाम के लिए पूंजी होगी ।
KNU

5
स्कैनर इनपुट = नया स्कैनर (System.in);
int पूर्णांक = input.nextInt ();
स्ट्रिंग स्ट्रिंग = input.next ();
long longteteger = input.nextLong ();

5

बस एक अतिरिक्त विस्तार। यदि आप मेमोरी / रिसोर्स लीक को जोखिम में नहीं डालना चाहते हैं, तो काम पूरा होने पर आपको स्कैनर स्ट्रीम को बंद कर देना चाहिए:

myScanner.close();

ध्यान दें कि जावा 1.7 और बाद में इसे संकलन चेतावनी के रूप में पकड़ें (यह न पूछें कि मुझे कैसे पता है कि :-)


लेकिन अगर स्कैनर System.in के लिए खुला नहीं है। आप अपने प्रोग्राम में फिर से System.in पर स्कैनर को फिर से खोल नहीं पाएंगे।
ksnortum



4

यहाँ स्वीकृत उत्तर का अधिक विकसित संस्करण है जो दो सामान्य आवश्यकताओं को संबोधित करता है:

  • निकास मूल्य दर्ज किए जाने तक उपयोगकर्ता इनपुट को बार-बार एकत्रित करना
  • अमान्य इनपुट मान (इस उदाहरण में गैर-पूर्णांक) से निपटना

कोड

package inputTest;

import java.util.Scanner;
import java.util.InputMismatchException;

public class InputTest {
    public static void main(String args[]) {
        Scanner reader = new Scanner(System.in);
        System.out.println("Please enter integers. Type 0 to exit.");

        boolean done = false;
        while (!done) {
            System.out.print("Enter an integer: ");
            try {
                int n = reader.nextInt();
                if (n == 0) {
                    done = true;
                }
                else {
                    // do something with the input
                    System.out.println("\tThe number entered was: " + n);
                }
            }
            catch (InputMismatchException e) {
                System.out.println("\tInvalid input type (must be an integer)");
                reader.nextLine();  // Clear invalid input from scanner buffer.
            }
        }
        System.out.println("Exiting...");
        reader.close();
    }
}

उदाहरण

Please enter integers. Type 0 to exit.
Enter an integer: 12
    The number entered was: 12
Enter an integer: -56
    The number entered was: -56
Enter an integer: 4.2
    Invalid input type (must be an integer)
Enter an integer: but i hate integers
    Invalid input type (must be an integer)
Enter an integer: 3
    The number entered was: 3
Enter an integer: 0
Exiting...

ध्यान दें कि इसके बिना nextLine(), बुरा इनपुट एक ही अपवाद को एक अनंत लूप में बार-बार ट्रिगर करेगा। आप next()परिस्थिति के आधार पर इसके बजाय उपयोग करना चाह सकते हैं , लेकिन यह जान लें कि जैसे इनपुट this has spacesसे कई अपवाद उत्पन्न होंगे।


3

throws IOExceptionबगल में जोड़ें main(), फिर

DataInputStream input = new DataInputStream(System.in);
System.out.print("Enter your name");
String name = input.readLine();

3

जावा में इनपुट प्राप्त करना बहुत सरल है, आपको बस इतना करना है:

import java.util.Scanner;

class GetInputFromUser
{
    public static void main(String args[])
    {
        int a;
        float b;
        String s;

        Scanner in = new Scanner(System.in);

        System.out.println("Enter a string");
        s = in.nextLine();
        System.out.println("You entered string " + s);

        System.out.println("Enter an integer");
        a = in.nextInt();
        System.out.println("You entered integer " + a);

        System.out.println("Enter a float");
        b = in.nextFloat();
        System.out.println("You entered float " + b);
    }
}

एक ही बात है। आप हमेशा डेटाटाइप varName [] या डेटाटाइप [] varName
user2277872

3
import java.util.Scanner;

public class Myapplication{
     public static void main(String[] args){
         Scanner in = new Scanner(System.in);
         int a;
         System.out.println("enter:");
         a = in.nextInt();
         System.out.println("Number is= " + a);
     }
}

2

आप किसी बफ़र-राइडर का उपयोग करके इस तरह से उपयोगकर्ता इनपुट प्राप्त कर सकते हैं:

    InputStreamReader inp = new InputStreamReader(System.in);
    BufferedReader br = new BufferedReader(inp);
    // you will need to import these things.

यह है कि आप उन्हें कैसे लागू करते हैं

    String name = br.readline(); 

इसलिए जब उपयोगकर्ता कंसोल में अपना नाम टाइप करता है, तो "स्ट्रिंग नाम" उस जानकारी को संग्रहीत करेगा।

यदि यह एक संख्या है जिसे आप स्टोर करना चाहते हैं, तो कोड इस तरह दिखाई देगा:

    int x = Integer.parseInt(br.readLine());

हॉप यह मदद करता है!


2

कुछ इस तरह हो सकता है ...

public static void main(String[] args) {
    Scanner reader = new Scanner(System.in);

    System.out.println("Enter a number: ");
    int i = reader.nextInt();
    for (int j = 0; j < i; j++)
        System.out.println("I love java");
}

1

यह एक सरल कोड है जो System.in.read()फ़ंक्शन का उपयोग करता है । यह कोड सिर्फ वही लिखता है जो टाइप किया गया था। यदि आप सिर्फ एक बार इनपुट लेना चाहते हैं तो आप लूप से छुटकारा पा सकते हैं, और यदि आप ऐसा चुनते हैं तो आप किसी कैरेक्टर एरे में जवाब स्टोर कर सकते हैं।

package main;

import java.io.IOException;

public class Root 
{   
    public static void main(String[] args)
    {
        new Root();
    }

    public Root()
    {
        while(true)
        {
            try
            {
                for(int y = 0; y < System.in.available(); ++y)
                { 
                    System.out.print((char)System.in.read()); 
                }
            }
            catch(IOException ex)
            {
                ex.printStackTrace(System.out);
                break;
            }
        }
    }   
}    

1

मुझे निम्नलिखित पसंद है:

public String readLine(String tPromptString) {
    byte[] tBuffer = new byte[256];
    int tPos = 0;
    System.out.print(tPromptString);

    while(true) {
        byte tNextByte = readByte();
        if(tNextByte == 10) {
            return new String(tBuffer, 0, tPos);
        }

        if(tNextByte != 13) {
            tBuffer[tPos] = tNextByte;
            ++tPos;
        }
    }
}

और उदाहरण के लिए, मैं करूँगा:

String name = this.readLine("What is your name?")

1
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        System.out.println("Welcome to the best program in the world! ");
        while (true) {
            System.out.print("Enter a query: ");
            Scanner scan = new Scanner(System.in);
            String s = scan.nextLine();
            if (s.equals("q")) {
                System.out.println("The program is ending now ....");
                break;
            } else  {
                System.out.println("The program is running...");
            }
        }
    }
}

0

आप उपयोगकर्ता इनपुट का उपयोग कर प्राप्त कर सकते हैं Scanner। आप विभिन्न डेटा प्रकारों के next()लिए Stringया इसके nextInt()लिए उचित विधियों का उपयोग करके उचित इनपुट सत्यापन का उपयोग कर सकते हैं Integer

import java.util.Scanner;

Scanner scanner = new Scanner(System.in);

//reads the input until it reaches the space
System.out.println("Enter a string: ");
String str = scanner.next();
System.out.println("str = " + str);

//reads until the end of line
String aLine = scanner.nextLine();

//reads the integer
System.out.println("Enter an integer num: ");
int num = scanner.nextInt();
System.out.println("num = " + num);

//reads the double value
System.out.println("Enter a double: ");
double aDouble = scanner.nextDouble();
System.out.println("double = " + aDouble);


//reads the float value, long value, boolean value, byte and short
double aFloat = scanner.nextFloat();
long aLong = scanner.nextLong();
boolean aBoolean = scanner.nextBoolean();
byte aByte = scanner.nextByte();
short aShort = scanner.nextShort();

scanner.close();

0

उपयोगकर्ता इनपुट प्राप्त करने का सबसे सरल तरीका स्कैनर का उपयोग करना होगा। इसका उपयोग कैसे किया जाना चाहिए, इसका एक उदाहरण यहां दिया गया है:

import java.util.Scanner;
public class main {
public static void main(String[]args) {
Scanner sc=new Scanner(System.in);
int a;
String b;
System.out.println("Type an integer here: ");
a=sc.nextInt();
System.out.println("Type anything here:");
b=sc.nextLine();

कोड की लाइन import java.util.Scanner; प्रोग्राम को बताती है कि प्रोग्रामर अपने कोड में उपयोगकर्ता इनपुट का उपयोग करेगा। जैसा कि यह कहता है, यह स्कैनर उपयोगिता को आयात करता है। Scanner sc=new Scanner(System.in);उपयोगकर्ता इनपुट शुरू करने के लिए कार्यक्रम बताता है। ऐसा करने के बाद, आपको बिना मान के एक स्ट्रिंग या पूर्णांक बनाना होगा, फिर उन्हें पंक्ति में रखें a=sc.nextInt();या a=sc.nextLine();। यह चर को उपयोगकर्ता इनपुट का मूल्य देता है। फिर आप इसे अपने कोड में उपयोग कर सकते हैं। उम्मीद है की यह मदद करेगा।


-1
import java.util.Scanner;

public class userinput {
    public static void main(String[] args) {        
        Scanner input = new Scanner(System.in);

        System.out.print("Name : ");
        String name = input.next();
        System.out.print("Last Name : ");
        String lname = input.next();
        System.out.print("Age : ");
        byte age = input.nextByte();

        System.out.println(" " );
        System.out.println(" " );

        System.out.println("Firt Name: " + name);
        System.out.println("Last Name: " + lname);
        System.out.println("      Age: " + age);
    }
}

-1
class ex1 {    
    public static void main(String args[]){
        int a, b, c;
        a = Integer.parseInt(args[0]);
        b = Integer.parseInt(args[1]);
        c = a + b;
        System.out.println("c = " + c);
    }
}
// Output  
javac ex1.java
java ex1 10 20 
c = 30

argsपहले उस सरणी की लंबाई की जांच किए बिना तत्वों तक पहुंचने की मंजूरी : डाउनवोट।
जुबेश


-1

स्कैनर का उपयोग करके कीबोर्ड प्रविष्टि संभव है, जैसा कि अन्य ने पोस्ट किया है। लेकिन इन अत्यधिक ग्राफिक समय में यह एक ग्राफिकल यूजर इंटरफेस (जीयूआई) के बिना एक कैलकुलेटर बनाने में व्यर्थ है।

आधुनिक जावा में इसका मतलब है कि Scene बिल्डर जैसे JavaFX ड्रैग-एंड-ड्रॉप टूल का उपयोग करना है एक GUI को बाहर निकालने के लिए का उपयोग करना जो कैलकुलेटर के कंसोल जैसा दिखता है। ध्यान दें कि दृश्य बिल्डर का उपयोग करना सहज रूप से आसान है और इसके घटना संचालकों के लिए कोई अतिरिक्त जावा कौशल नहीं मांगता है कि आपके पास पहले से क्या हो सकता है।

उपयोगकर्ता इनपुट के लिए, आपके पास GUI कंसोल के शीर्ष पर एक विस्तृत TextField होना चाहिए।

यह वह जगह है जहां उपयोगकर्ता उन संख्याओं में प्रवेश करता है, जिन पर वे कार्य करना चाहते हैं। TextField के नीचे, आपके पास फ़ंक्शन बटन की एक सरणी होगी जो बुनियादी काम कर रही है (यानी जोड़ें / घटाना / गुणा / भाग करें और मेमोरी / रिकॉल / स्पष्ट) फ़ंक्शन। एक बार GUI के बाहर होने के बाद, आप 'नियंत्रक' संदर्भ जोड़ सकते हैं जो प्रत्येक बटन फ़ंक्शन को इसके जावा कार्यान्वयन से जोड़ता है, जैसे कि आपके प्रोजेक्ट के नियंत्रक वर्ग में विधि के लिए कॉल।

यह वीडियो थोड़ा पुराना है लेकिन फिर भी दिखाता है कि सीन बिल्डर कितना आसान है।


यह उत्तर अस्वीकृत कर दिया गया है - कोई कारण नहीं दिया गया है। मेरे लिए यह जावा अनुप्रयोग में उपयोगकर्ता इनपुट प्राप्त करने का एकमात्र उपयोगी तरीका है।
ट्रंक

यह बहुत उपयोगी है, और मैं यह नहीं देखता कि यह डाउन-वोटेड क्यों था। हालांकि, वर्तमान उत्तर और बाउंटी स्टेटमेंट का अर्थ है कि वे भविष्य के उपयोगकर्ताओं के लिए एक उत्तर की तलाश कर रहे हैं जो कंसोल के माध्यम से इनपुट प्राप्त करना चाहते हैं।
जेफ्रीमैन

मैं अभी किसी जावा उपयोगकर्ता को नहीं देखता - जावा के पुराने संस्करणों में लिखे गए कोड से चिपके हुए लोगों को रोकते हुए - स्कैनर कीबोर्ड इनपुट के लिए किसी भी उपयोग के साथ। पिछली बार मैं एक बाउंटी-बंधी हुई पोस्ट का जवाब दे रहा हूं। । ।
ट्रंक

मैं आपकी शिकायत को पूरी तरह समझता हूं। मेरा व्यक्तिगत रूप से मानना ​​है कि आपका उत्तर बहुत उपयोगी है इसलिए मुझे समझ में नहीं आ रहा है कि यह डाउन-वोटेड क्यों था। हालाँकि, मेरे पास कई मौकों पर ऐसे लिखित कार्यक्रम हैं जिनमें GUI नहीं है और इसलिए मेरा मानना ​​है कि एक के लिए उचित कोड Scannerउपलब्ध होना बहुत अच्छा है।
JFreeman

यदि ओपी ने कहा कि यह कुछ कम-ओवरहेड (एम्बेडेड?) प्रक्रिया है जिसमें न्यूनतम या कोई स्क्रीन I / O नहीं है, तो पर्याप्त है - स्कैनर वह है जिसकी उन्हें आवश्यकता है। लेकिन उन्होंने ऐसी कोई बात नहीं कही। ओपी ने अनिवार्य रूप से हमें यह स्वीकार करने के लिए कहा कि यह वाक्यांश, "उपयोगकर्ता इनपुट", मुख्य रूप से कीबोर्ड इनपुट का सुझाव देता है या फिर हमें खुद के लिए वाक्यांश की व्याख्या करने के लिए आमंत्रित किया है। । ।
ट्रंक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.