كيفية الحصول على مدخلات من مستخدم في Java (بالصور)

جدول المحتويات:

كيفية الحصول على مدخلات من مستخدم في Java (بالصور)
كيفية الحصول على مدخلات من مستخدم في Java (بالصور)

فيديو: كيفية الحصول على مدخلات من مستخدم في Java (بالصور)

فيديو: كيفية الحصول على مدخلات من مستخدم في Java (بالصور)
فيديو: شطرنج من الريزن ياخد العقل تعالوا بسرعه شوفوا الخطوات و الفوتوسيشن Resin Chessboard tutorial 2024, يمكن
Anonim

عند البرمجة بلغة Java أو أي لغة أخرى ، ستحتاج على الأرجح إلى استخدام معلومات الإدخال من المستخدم. توفر Java العديد من الطرق المختلفة للحصول على معلومات المستخدم ، ولكن الطريقة الأكثر شيوعًا وربما الأسهل في التنفيذ هي استخدام كائن الماسح الضوئي.

خطوات

طريقة 1 من 2: مقاطع الفيديو

1514756 1
1514756 1

الخطوة 1. استيراد فئة الماسح

يمكنك إما اختيار استيراد ملف

java.util. Scanner

الطبقة أو الكل

java.util

صفقة. لاستيراد فئة أو حزمة ، أضف أحد الأسطر التالية إلى بداية التعليمات البرمجية الخاصة بك:

    استيراد java.util. Scanner ؛ // سيؤدي هذا إلى استيراد فئة الماسح فقط. استيراد java.util. * ؛ // سيؤدي هذا إلى استيراد حزمة java.util بأكملها.

1514756 2
1514756 2

الخطوة 2. قم بتهيئة كائن ماسح ضوئي جديد عن طريق تمرير

System.in

تيار الإدخال إلى المنشئ.

System.in

هو دفق الإدخال القياسي المفتوح بالفعل وجاهزًا لتوفير بيانات الإدخال. عادةً ما يتوافق هذا التدفق مع إدخال لوحة المفاتيح.

    الماسح userInputScanner = ماسح ضوئي جديد (System.in) ؛

1514756 3
1514756 3

الخطوة الثالثة: اقرأ أنواعًا مختلفة من بيانات الإدخال التي يُدخلها المستخدم

تدعم فئة Scanner الحصول على العناصر الأولية مثل int ، و byte ، و short ، و long بالإضافة إلى الحصول على سلاسل.

  • فيما يلي بعض الطرق المتوفرة من خلال فئة الماسح الضوئي:

    • اقرأ بايت -

      nextByte ()

    • اقرأ باختصار -

      nextShort ()

    • قراءة int -

      nextInt ()

    • اقرأ وحيدا -

      nextLong ()

    • قراءة تعويم -

      nextFloat ()

    • قراءة مزدوجة -

      التاليمزدوج ()

    • قراءة منطقية -

      nextBoolean ()

    • اقرأ سطرًا كاملاً -

      السطر التالي()

    • اقرأ كلمة -

      التالي()

  • فيما يلي مثال لبرنامج يستخدم طرقًا مختلفة لفئة Scanner للحصول على أنواع مختلفة من المدخلات:

      استيراد java.util. Scanner ؛ فئة عامة ScannerExample {public static void main (String args) {// Initiate a new Scanner Scanner userInputScanner = new Scanner (System.in)؛ // اختبار nextLine () ؛ System.out.println ("\ n ما اسمك؟")؛ اسم السلسلة = userInputScanner.nextLine () ، // اختبار nextInt () ؛ System.out.print ("كم عدد القطط لديك؟")؛ int numberOfCats = userInputScanner.nextInt () ، // اختبار nextDouble () ؛ System.out.print ("كم من المال في محفظتك؟ $")؛ double moneyInWallet = userInputScanner.nextDouble () ، System.out.println ("\ n مرحبًا" + name + "! لديك" + numberOfCats + (numberOfCats> 1؟ "cats": "cat") + "و $" + moneyInWallet + "في محفظتك. / n") ؛ }}

الطريقة 2 من 2: معالجة الاستثناءات

1514756 4
1514756 4

الخطوة 1. التعامل مع استثناءات الإدخال

ان

InputMismatchException

يتم طرحها عند قيام المستخدم بإدخال بيانات لا تتطابق مع النوع المطلوب. على سبيل المثال ، إذا قام المستخدم بإدخال سلسلة عند طلب int ، فسيقوم البرنامج برمي

InputMismatchException

والخروج. هناك عدة طرق للتعامل مع هذا الاستثناء وحل هذه المشكلة بحيث يكون برنامجك مضمونًا.

1514756 5
1514756 5

الخطوة 2. استخدم كتلة try-catch للتعامل مع ملف

InputMismatchException

.

    استيراد java.util. InputMismatchException ؛ استيراد java.util. Scanner ؛ فئة عامة ScannerExample {public static void main (String args) {// Initiate a new Scanner Scanner userInputScanner = new Scanner (System.in)؛ // اختبار nextLine () ؛ System.out.print ("\ n ما اسمك؟")؛ اسم السلسلة = userInputScanner.nextLine () ، // اختبار nextInt () ؛ منطقية صالحة الإدخال = خطأ ؛ عدد int numberOfCats = 0 ؛ while (! validInput) {System.out.print ("كم عدد القطط لديك؟") ؛ جرب {numberOfCats = userInputScanner.nextInt () ، المدخلات الصالحة = صحيح ؛ } catch (InputMismatchException e) {validInput = false؛ userInputScanner.nextLine () ، }} // Testing nextDouble ()؛ المدخلات الصالحة = خطأ ؛ ضعف moneyInWallet = 0.0 ؛ while (! validInput) {System.out.print ("كم من المال في محفظتك؟ $")؛ جرب {moneyInWallet = userInputScanner.nextDouble () ؛ userInputScanner.nextLine () ، المدخلات الصالحة = صحيح ؛ } catch (InputMismatchException e) {validInput = false؛ userInputScanner.nextLine () ، }} System.out.println ("\ n مرحبًا" + name + "! لديك" + numberOfCats + (numberOfCats> 1؟ "cats": "cat") + "و $" + moneyInWallet + "في محفظتك. / ن")؛ }}

  • لاحظ أنه يتعين علينا الاستيراد

    java.util. InputMismatchException

    من أجل استخدام

    InputMismatchException

  • صف دراسي.
  • نحن نستخدم حلقة while لطرح نفس السؤال على المستخدم حتى يُدخل المستخدم الإدخال الصحيح.
  • مضيفا

    userInputScanner.nextLine () ،

  • في جزء الالتقاط من try-catch ، يضمن الماسح الضوئي إقرار الضغط على مفتاح "الإدخال" من المستخدم ويعمل كطريقة لمسح المخزن المؤقت للإدخال.
1514756 6
1514756 6

الخطوة 3. بدلاً من ذلك ، اجعل إدخال المستخدم مضمونًا من خلال أخذ الأسطر التالية فقط من الماسح الضوئي

بهذه الطريقة ، يمكننا التأكد من أن كل شيء يعود الماسح إليه عبارة عن كائن سلسلة ولن يُنشئ أي استثناءات. بعد ذلك ، لتحويل السلاسل إلى أعداد صحيحة أو مضاعفة ، يمكننا استخدام صنفَي العدد الصحيح والمزدوج.

    استيراد java.util. Scanner ؛ فئة عامة ScannerExample {public static void main (String args) {// Initiate a new Scanner Scanner userInputScanner = new Scanner (System.in)؛ // اختبار nextLine () ؛ System.out.print ("\ n ما اسمك؟")؛ اسم السلسلة = userInputScanner.nextLine () ، // اختبار nextInt () ؛ منطقية صالحة الإدخال = خطأ ؛ عدد int numberOfCats = 0 ؛ while (! validInput) {System.out.print ("كم عدد القطط لديك؟") ؛ إدخال سلسلة = userInputScanner.nextLine () ، جرب {numberOfCats = Integer.parseInt (إدخال) ، المدخلات الصالحة = صحيح ؛ } catch (NumberFormatException e) {validInput = false؛ }} // Testing nextDouble ()؛ المدخلات الصالحة = خطأ ؛ ضعف moneyInWallet = 0.0 ؛ while (! validInput) {System.out.print ("كم من المال في محفظتك؟ $")؛ إدخال سلسلة = userInputScanner.nextLine () ، جرب {moneyInWallet = Double.parseDouble (input) ؛ المدخلات الصالحة = صحيح ؛ } catch (NumberFormatException e) {validInput = false؛ }} System.out.println ("\ n مرحبًا" + name + "! لديك" + numberOfCats + (numberOfCats> 1؟ "cats": "cat") + "و $" + moneyInWallet + "في محفظتك. / ن")؛ }}

  • لاحظ أنه هنا لم يكن علينا استيراد ملف

    NumberFormatException

  • class لأنها جزء من حزمة java.lang ، مما يعني أنها مضمنة.
  • كما أننا لم نضطر إلى مسح استخدام المخزن المؤقت

    userInputScanner.nextLine () ،

  • في جزء الصيد من المحاولة.

نصائح

  • راجع Scanner API للحصول على مزيد من المعلومات حول استخدام فئة Scanner.
  • استخدم دومًا.next () بدلاً من.nextLine () لقراءة الكلمة التالية ، لأن.nextLine () يمكن أن يكون عربات التي تجرها الدواب.

موصى به: