it-swarm.dev

الحصول على إدخال لوحة المفاتيح

كيف يمكنني الحصول على إدخال بسيط للوحة المفاتيح (عدد صحيح) من المستخدم في وحدة التحكم في Java؟ لقد أنجزت هذا باستخدام Java.io.* الاشياء ، لكنها تقول انها مهملة.

كيف يجب أن أفعل ذلك الآن؟

43
user1342573

يمكنك استخدام الماسح الضوئي الطبقة

استيراد أولاً:

import Java.util.Scanner;

ثم تستخدم مثل هذا.

Scanner keyboard = new Scanner(System.in);
System.out.println("enter an integer");
int myint = keyboard.nextInt();

ملاحظة جانبية: إذا كنت تستخدم nextInt() مع nextLine() ، فمن المحتمل أنك قد تواجه بعض المشكلات لأن nextInt() لا تقرأ آخر سطر جديد من المدخلات وهكذا nextLine() إذن لن يتم تنفيذه بالسلوك المرغوب. اقرأ المزيد حول كيفية حلها في هذا السؤال السابق تخطي nextLine باستخدام nextInt .

64
nachokk

يمكنك استخدام فئة الماسح الضوئي مثل هذا:

  import Java.util.Scanner;

public class Main{
    public static void main(String args[]){

    Scanner scan= new Scanner(System.in);

    //For string

    String text= scan.nextLine();

    System.out.println(text);

    //for int

    int num= scan.nextInt();

    System.out.println(num);
    }
}
18
Mike B

يمكنك أيضًا إجراء ذلك باستخدام BufferedReader إذا كنت تريد التحقق من صحة إدخال المستخدم ، مثل هذا:

import Java.io.BufferedReader;
import Java.io.InputStreamReader; 
class Areas {
    public static void main(String args[]){
        float PI = 3.1416f;
        int r=0;
        String rad; //We're going to read all user's text into a String and we try to convert it later
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); //Here you declare your BufferedReader object and instance it.
        System.out.println("Radius?");
        try{
            rad = br.readLine(); //We read from user's input
            r = Integer.parseInt(rad); //We validate if "rad" is an integer (if so we skip catch call and continue on the next line, otherwise, we go to it (catch call))
            System.out.println("Circle area is: " + PI*r*r + " Perimeter: " +PI*2*r); //If all was right, we print this
        }
        catch(Exception e){
            System.out.println("Write an integer number"); //This is what user will see if he/she write other thing that is not an integer
            Areas a = new Areas(); //We call this class again, so user can try it again
           //You can also print exception in case you want to see it as follows:
           // e.printStackTrace();
        }
    }
}

لأن فئة الماسح الضوئي لن تسمح لك بذلك ، أو ليس بهذه السهولة ...

وللتحقق من صحة استخدامك مكالمات "try-catch".

13
Frakcool

يمكنك استخدام فئة الماسح الضوئي

للقراءة من لوحة المفاتيح ( الإدخال القياسي) يمكنك استخدام الماسح الضوئي هي فئة في الحزمة Java.util.

Scanner الحزمة المستخدمة للحصول على مدخلات الأنواع البدائية مثل int, double إلخ و strings. إنها أسهل طريقة لقراءة المدخلات في برنامج Java ، على الرغم من أنه غير فعال للغاية.

  1. لإنشاء فئة object من Scanner ، نمر عادةً بالكائن المحدد مسبقًا System.in ، والذي يمثل دفق الإدخال القياسي ( Keyboard).

على سبيل المثال ، يسمح هذا الرمز للمستخدم بقراءة رقم من System.in:

Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();

بعض الطرق العامة في Scanner class.

  • hasNext() تقوم بإرجاع true إذا كان لهذا الماسح الضوئي رمز مميز آخر في الإدخال الخاص به.
  • nextInt() بفحص الرمز المميز التالي للإدخال باعتباره int.
  • nextFloat() بفحص الرمز المميز التالي للإدخال كتعويم.
  • nextLine() تقدم هذا الماسح الضوئي إلى ما بعد الخط الحالي وإرجاع الإدخال الذي تم تخطيه.
  • nextDouble() بفحص الرمز المميز التالي للإدخال كمضاعفة.
  • close() يغلق هذا الماسح الضوئي.

لمزيد من التفاصيل الطرق العامة في فئة الماسح الضوئي.

مثال:-

import Java.util.Scanner;                      //importing class

class ScannerTest {
  public static void main(String args[]) {
    Scanner sc = new Scanner(System.in);       // Scanner object

    System.out.println("Enter your rollno");
    int rollno = sc.nextInt();
    System.out.println("Enter your name");
    String name = sc.next();
    System.out.println("Enter your fee");
    double fee = sc.nextDouble();
    System.out.println("Rollno:" + rollno + " name:" + name + " fee:" + fee);
    sc.close();                              // closing object
  }
}
6
anoopknr

يمكنك استخدام Scanner للحصول على السطر التالي والقيام بكل ما تحتاج إلى فعله مع الخط الذي تم إدخاله. يمكنك أيضًا استخدام JOptionPane لإظهار مربع حوار يسأل عن المدخلات.

مثال الماسح الضوئي:

Scanner input = new Scanner(System.in);
System.out.print("Enter something > ");
String inputString = input.nextLine();
System.out.print("You entered : ");
System.out.println(inputString);

مثال على:

String input = JOptionPane.showInputDialog(null,
     "Enter some text:");
JOptionPane.showMessageDialog(null,"You entered "+ input);

ستحتاج هذه الواردات:

import Java.util.Scanner;
import javax.swing.JOptionPane;

كامل Java فئة من أعلاه

import Java.util.Scanner;
import javax.swing.JOptionPane;
public class GetInputs{
    public static void main(String args[]){
        //Scanner example
        Scanner input = new Scanner(System.in);
        System.out.print("Enter something > ");
        String inputString = input.nextLine();
        System.out.print("You entered : ");
        System.out.println(inputString);

        //JOptionPane example
        String input = JOptionPane.showInputDialog(null,
        "Enter some text:");
        JOptionPane.showMessageDialog(null,"You entered "+ input);
    }
}
3
s-hunter

استيراد: import Java.util.Scanner;

حدد متغيراتك: String name; int age;

حدد الماسح الضوئي الخاص بك: Scanner scan = new Scanner(System.in);

إذا كنت تريد الكتابة:

  • النص: name = scan.nextLine();
  • عدد صحيح: age = scan.nextInt();

أغلق الماسحة الضوئية إذا لم تعد هناك حاجة: scan.close();

2
喬治扎菲

إذا كان لديك Java 6 (يجب أن يكون لديك ، راجع للشغل) أو أعلى ، فقم بذلك ببساطة:

 Console console = System.console();
 String str = console.readLine("Please enter the xxxx : ");

يرجى تذكر أن تفعل:

 import Java.io.Console;

هذا هو!

2
M-D
import Java.util.Scanner; //import the framework


Scanner input = new Scanner(System.in); //opens a scanner, keyboard
System.out.print("Enter a number: "); //Prompt the user
int myInt = input.nextInt(); //store the input from the user

اسمحوا لي أن أعرف إذا كان لديك أي أسئلة. إلى حد ما تشرح نفسها بنفسها. لقد علقت الكود حتى تتمكن من قراءته. :)

2
Dummy Code

إضافة خط:

import Java.util.Scanner;

ثم قم بإنشاء عنصر من فئة Scanner:

Scanner s = new Scanner(System.in);

الآن يمكنك الاتصال في أي وقت:

int a = Integer.parseInt(s.nextLine());

سيؤدي ذلك إلى تخزين integer قيمة من لوحة المفاتيح.

1
Yeshdeep Kumar