জাভাতে কীভাবে ব্যবহারকারী ইনপুট পাবেন?


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নেই না চরিত্র তথ্য থেকে একটি পূর্ণসংখ্যা পার্স, এটা প্রয়োজনে ইউনিকোড মান এবং বিনিময়ে আজেবাজে কথা reinterpret হবে। DataInput#readIntবিশদ ( DataInputStreamসরঞ্জাম DataInput) জন্য দেখুন ।
রেডিওডেফ

3
এটি দুর্দান্ত, প্রয়োজনীয়তা আমদানি সম্পূর্ণতার জন্য যুক্ত দেখতে পছন্দ করবে। এটি সত্যই যাদের প্রয়োজন তাদের সহায়তা করবে।
নাইটহক

1
প্রয়োজনীয়তাগুলি আসলে কী ছিল তা যদি উল্লেখ করা হয় তবে এই উত্তরটি আরও অনেক সহায়ক হবে। আমি এটিকে ঠিক করার চেষ্টা করার জন্য একটি অনুগ্রহ শুরু করেছি।
অস্থায়ী_ ব্যবহারকারী_র নাম

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 বন্ধ করার পরে কেন আবার খুলতে পারবেন না সে সম্পর্কে কিছুটা দরকারী সম্পর্কিত প্রশ্ন ।
অস্থায়ী_ ব্যবহারকারী_নাম

45

আপনি স্ক্যানার ক্লাস বা কনসোল ক্লাস ব্যবহার করতে পারেন

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

55
আমি মনে করি যদি এই কোডটি গ্রহণ থেকে চালিত হয় তবে সিস্টেমকনসোলটি শূন্য হবে।
উইন কোডার

13
আমি বিশ্বাস করি এটি প্রায় কোনও আইডিই থেকে চলমান একটি ত্রুটি ফিরিয়ে দেবে। নিশ্চিত করেছে যে ইন্টেলিজ একই সমস্যা নিয়েছে।
ড্যান ব্র্যাডবেরি

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

আপনি ব্যবহারকারীর নাম জিজ্ঞাসা করার জন্য একটি সহজ প্রোগ্রাম তৈরি করতে পারেন এবং যে কোনও উত্তর ব্যবহারের ইনপুটগুলি মুদ্রণ করতে পারে।

অথবা ব্যবহারকারীকে দুটি সংখ্যা লিখতে বলুন এবং আপনি এই সংখ্যাগুলি যুক্ত করতে পারেন, গুণ করতে পারেন, বিয়োগ করতে পারেন বা ভাগ করতে পারেন এবং ব্যবহারকারীর ইনপুটগুলির জন্য উত্তরগুলি ক্যালকুলেটরের আচরণের মতো মুদ্রণ করতে পারেন।

সুতরাং সেখানে আপনার স্ক্যানার ক্লাস দরকার। যা শুরু করেছো 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ক্লাসটি ব্যবহার করা সহজ
  • সংখ্যার সহজ ইনপুট (ইনট, সংক্ষিপ্ত, বাইট, ভাসা, দীর্ঘ এবং ডাবল)
  • ব্যতিক্রমগুলি যাচাই করা যায় না যা আরও সুবিধাজনক। এটি সভ্য হওয়ার জন্য প্রোগ্রামারটির উপর নির্ভর করে এবং ব্যতিক্রমগুলি নির্দিষ্ট করে বা ধরা দেয়।
  • লাইন, সাদা স্পেস এবং রেজেক্স-সীমাবদ্ধ টোকেনগুলি পড়তে সক্ষম

বাফার্ডআইপুট স্ট্রিমের সুবিধা


সামগ্রিকভাবে প্রতিটি ইনপুট পদ্ধতির বিভিন্ন উদ্দেশ্য রয়েছে।

  • আপনি যদি বিপুল পরিমাণে ডেটা ইনপুট করে থাকেন তবে আপনার পক্ষে 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পাসওয়ার্ডগুলি পড়ার ক্ষমতার মতো কয়েকটি শক্তিশালী বৈশিষ্ট্য রয়েছে তবে সমস্ত আইডিইতে (যেমন গ্রহনের মতো) উপলভ্য নয়। এর কারণ হওয়ার কারণ হ'ল Eclipse আপনার অ্যাপ্লিকেশনটিকে ব্যাকগ্রাউন্ড প্রক্রিয়া হিসাবে চালায় এবং সিস্টেম কনসোল দিয়ে শীর্ষ স্তরের প্রক্রিয়া হিসাবে নয়। ক্লাসটি কীভাবে প্রয়োগ করা যায় সে সম্পর্কে একটি দরকারী উদাহরণের একটি লিঙ্ক এখানেConsole

DataInputStreamমেশিন-স্বতন্ত্র উপায়ে অন্তর্নিহিত ইনপুট স্ট্রিম থেকে প্রাথমিকভাবে আদিম ডেটাটাইপ হিসাবে ইনপুট পড়ার জন্য ব্যবহৃত হয়। DataInputStreamবাইনারি ডেটা পড়ার জন্য সাধারণত ব্যবহৃত হয়। এটি নির্দিষ্ট ডেটা ধরণের পড়ার সুবিধামত পদ্ধতিও সরবরাহ করে। উদাহরণস্বরূপ, এটিতে একটি ইউটিএফ স্ট্রিং পড়ার একটি পদ্ধতি রয়েছে যার মধ্যে তাদের মধ্যে অনেকগুলি লাইন থাকতে পারে।

যাইহোক, এটি আরও জটিল শ্রেণি এবং এটি প্রয়োগ করা আরও শক্ত এবং এটি প্রাথমিকভাবে বাঞ্ছনীয়দের জন্য প্রস্তাবিত নয়। কীভাবে কার্যকর করতে হয় তার একটি দরকারী উদাহরণের একটি লিঙ্ক এখানেDataInputStream


আমি এগিয়ে যেতে এবং বিজয়ী এখানে কল করতে যাচ্ছি। বেশিরভাগই দুর্দান্ত উত্তর, যদিও আমার ইচ্ছা হয় আমি কখন এটি ব্যবহার করতে চাই তার গভীরতায় চলে যায় DataInputStream- সেখানে বর্ণিত বিবরণটি ব্যবহারের ক্ষেত্রে অনুরূপ বলে মনে হচ্ছে Scanner: আদিমগুলিতে ডেটা পড়া। এছাড়াও, যদি কেউ এমন পর্যায়ে থাকে যেখানে তারা ব্যবহারকারীদের কীভাবে ইনপুট পেতে হয় তা না জানে তবে সম্ভবত তারা বুঝতে পারে না কেন স্ট্যান্ডার্ড লাইব্রেরির কিছু অংশ নির্দিষ্ট আইডিইতে পাওয়া যায় না। অবশ্যই আমার ক্ষেত্রে - কেন Consoleঅনুপলব্ধ?
অস্থায়ী_ ব্যবহারকারী_নাম

1
আপনার মতামতের জন্য ধন্যবাদ আমি আরও স্পষ্টতা অন্তর্ভুক্ত করার জন্য আপডেট করার চেষ্টা করেছি। দেখুন quora.com/... এবং stackoverflow.com/questions/27601520/...
JFreeman

পারফেক্ট। এখন এই প্রশ্নের ঠিক উত্তরটি হ'ল পাশাপাশি। যদি কেবল কোনও উপায় থাকত তবে আমি এটি শীর্ষে উঠতে পারি।
অস্থায়ী_ ব্যবহারকারী_নাম

ঠিক আছে, যে কেউ নীচে স্ক্রোল করতে ইচ্ছুক তাদের একটি ভাল উত্তর পাবেন এবং আস্তে আস্তে এটি উঠে যাবে :)
জেফ্রিমান

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অবজেক্ট তৈরি করার দরকার নেই ; এক যথেষ্ট ছিল।
jub0bs

5

Systemইনপুট পেতে ক্লাসটি ব্যবহার করুন।

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

কী-বোর্ড থেকে ডেটা গ্রহণ করা হয় কীভাবে?

আমাদের তিনটি জিনিস দরকার

  1. System.in
  2. InputStreamReader
  3. BufferedReader

    • ইনপুটস্ট্রিম রিডার এবং বাফারডারিডার java.io প্যাকেজের ক্লাস।
    • কীবোর্ড থেকে ডেটা বাইট আকারে System.in দ্বারা প্রাপ্ত হয় যা একটি ইনপুট স্ট্রিম অবজেক্ট।
    • তারপরে ইনপুট স্ট্রিমার্ডার বাইটগুলি পড়ে এবং সেগুলিকে অক্ষরে ডিকোড করে।
    • তারপরে অবশেষে বাফারড্রেডার অবজেক্ট একটি অক্ষর-ইনপুট স্ট্রিম থেকে পাঠ্য পাঠ করে, অক্ষরগুলি বাফার করে যাতে অক্ষর, অ্যারে এবং লাইনগুলির দক্ষ পাঠের ব্যবস্থা করা যায়।
InputStreamReader inp = new InputStreamReader(system.in);
BufferedReader br = new BufferedReader(inp);

1
System.in(কোডের প্রথম পংক্তির) Sশ্রেণীর নামের জন্য মূলধন থাকবে ।
কেএনইউ

5
স্ক্যানার ইনপুট = নতুন স্ক্যানার (System.in);
int পূর্ণসংখ্যা = input.nextInt ();
স্ট্রিং স্ট্রিং = ইনপুট.নেক্সট ();
দীর্ঘ দীর্ঘInteger = ইনপুট.নেক্সটলং ();

5

মাত্র একটি অতিরিক্ত বিশদ। আপনি যদি কোনও মেমরি / রিসোর্স ফাঁসের ঝুঁকি নিতে না চান তবে আপনার কাজ শেষ হয়ে গেলে স্ক্যানার স্ট্রিমটি বন্ধ করা উচিত:

myScanner.close();

নোট করুন যে জাভা ১.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);
    }
}

ইহা একই জিনিস. আপনি সর্বদা ডেটাটাইপ ভেরনাম [] বা ডেটাটাইপ [] বর্ণনামের সাহায্যে একটি অ্যারে শুরু করতে পারেন
ব্যবহারকারী 2277872

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প্রথমে অ্যারের দৈর্ঘ্য পরীক্ষা না করে উপাদানগুলির অ্যাক্সেসের জন্য অনুমোদন : ডাউনভোট।
jub0bs


-1

স্ক্যানার ব্যবহার করে কীবোর্ড প্রবেশ করা সম্ভব, অন্যরা যেমন পোস্ট করেছে। তবে এই অত্যন্ত গ্রাফিক সময়ে গ্রাফিকাল ইউজার ইন্টারফেস (জিইউআই) ছাড়াই ক্যালকুলেটর তৈরি করা অর্থহীন।

আধুনিক জাভাতে এর অর্থ দৃশ্য বিল্ডারের মতো একটি জাভাএফএক্স ড্র্যাগ-অ্যান্ড-ড্রপ টুল ব্যবহার করা একটি ক্যালকুলেটরের কনসোলের অনুরূপ একটি জিইউআই রাখার জন্য । নোট করুন যে দৃশ্য বিল্ডারটি ব্যবহার করা স্বজ্ঞাতভাবে সহজ এবং এর ইভেন্ট হ্যান্ডলারদের জন্য আপনার যা ইতিমধ্যে থাকতে পারে তার জন্য অতিরিক্ত কোনও জাভা দক্ষতার প্রয়োজন নেই।

ব্যবহারকারীর ইনপুটগুলির জন্য আপনার জিইউআই কনসোলের শীর্ষে একটি প্রশস্ত টেক্সটফিল্ড থাকা উচিত।

এই স্থানেই ব্যবহারকারীরা সেই সংখ্যাগুলিতে প্রবেশ করেন যা তারা কার্য সম্পাদন করতে চান। টেক্সটফিল্ডের নীচে, আপনার কাছে ফাংশন বোতামগুলির একটি অ্যারে থাকবে বেসিক (যেমন যোগ / বিয়োগ / গুণ / ভাগ এবং মেমরি / স্মরণ / পরিষ্কার) ফাংশন doing একবার জিইউআই আউট হয়ে গেলে, আপনি তারপরে 'কন্ট্রোলার' উল্লেখগুলি যুক্ত করতে পারেন যা প্রতিটি বাটন ফাংশনটিকে তার জাভা বাস্তবায়নের সাথে যুক্ত করে, যেমন আপনার প্রকল্পের নিয়ামক শ্রেণিতে পদ্ধতিতে কল call

এই ভিডিওটি কিছুটা পুরানো তবে এখনও দৃশ্য নির্মাতা ব্যবহার করা কতটা সহজ তা এখনও দেখায়।


এই উত্তরটি হ্রাস করা হয়েছে - কোনও কারণ দেওয়া হয়নি। আমার কাছে জাভা অ্যাপ্লিকেশনটিতে ব্যবহারকারীর ইনপুট পাওয়ার একমাত্র ব্যবহারযোগ্য উপায়।
ট্রাঙ্ক

এটি খুব দরকারী, এবং কেন এটি নিচে ভোট দেওয়া হয়েছে তা আমি দেখতে পাচ্ছি না। যাইহোক, বর্তমান উত্তর এবং অনুগ্রহ বিবৃতিটি বোঝায় যে তারা ভবিষ্যতের ব্যবহারকারীদের জন্য কোনও উত্তর খুঁজছেন যারা কনসোলের মাধ্যমে ইনপুট পেতে চান।
জেফ্রিমান

আমি কেবল কোনও জাভা ব্যবহারকারীকে দেখতে পাচ্ছি না - জাভা পুরানো সংস্করণে লিখিত কোডগুলিতে আটকে থাকা ব্যতীত - স্ক্যানার কীবোর্ড ইনপুটটির জন্য কোনও ব্যবহার রয়েছে। শেষবারের মতো আমি একটি অনুগ্রহযুক্ত পোস্টের উত্তর দিচ্ছি। । ।
ট্রাঙ্ক

আমি আপনার অভিযোগ পুরোপুরি বুঝতে। আমি ব্যক্তিগতভাবে বিশ্বাস করি যে আপনার উত্তরটি খুব দরকারী তাই কেন এটি নীচে ভোট হয়েছে তা আমি বুঝতে পারি না। যাইহোক, আমার অনেকগুলি অনুষ্ঠানে লিখিত প্রোগ্রাম রয়েছে যেগুলিতে জিইউআই নেই এবং তাই আমি বিশ্বাস করি যে এর জন্য উপযুক্ত কোডটি Scannerপাওয়া খুব ভাল।
জেফ্রিমান

যদি ওপি বলেছে যে এটি কিছু কম-ওভারহেড (এম্বেড করা) প্রক্রিয়াটি ন্যূনতম বা কোনও স্ক্রিন আই / ও নয়, যথেষ্ট ন্যায্য - স্ক্যানার তাদের যা প্রয়োজন তা হল। কিন্তু তারা এ জাতীয় কোনও কথা বলেনি। ওপি মূলত আমাদের মেনে নিতে বলেছিল যে এই শব্দগুচ্ছটি, "ইউজার ইনপুট", মূলত কীবোর্ড ইনপুট প্রস্তাব দেয় বা অন্যথায় আমাদের নিজের জন্য বাক্যাংশটি ব্যাখ্যা করার জন্য আমন্ত্রণ জানিয়েছে। । ।
ট্রাঙ্ক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.