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

طرق الادخال من وحدة التحكم في الجافا Java Input Console

اذهب الى الأسفل

Scanner - طرق الادخال من وحدة التحكم في الجافا Java Input Console Empty طرق الادخال من وحدة التحكم في الجافا Java Input Console

مُساهمة من طرف زهراء السبت يناير 04, 2020 4:37 pm

أهلا بكم 

هناك أوقات يكون فيها من المهم بالنسبة لك الحصول على مدخلات من المستخدمين لتنفيذ برنامج معين وتوجد عدة طرق لفعل ذلك وهى طرق الادخال من خلال وحدة التحكم على النحو التالى :



  1. باستخدام فئة #BufferedReader
  2. باستخدام فئة #Scanner
  3. باستخدام فئة #Console


الآن دعونا نلقي نظرة فاحصة على هذه الأساليب واحدة تلو الأخرى.

أولا: باستخدام فئة BufferedReader


هذه هي أقدم طريقة في Java لإدخال البيانات من وحدة التحكم. تم تقديم هذه التقنية لأول مرة في الاصدار JDK 1.0. باستخدام هذه الطريقة نحتاج إلى التفاف الفئة InputStreamReader و الفئة System.in في الفئة BufferedReader .

يتم ذلك باستخدام بناء الجملة التالي:

الكود:
BufferedReader br = new BufferedReader (new InputStreamReader (System.in));

سيؤدي استخدام هذا إلى ربط الدفق القائم على الأحرف "br" بوحدة التحكم للإدخال من خلال System.in...دعونا نلقي نظرة على مثال لجعل المفهوم أكثر وضوحا.

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

الكود:
import java.io.*;
class bread
{
      public static void main(String args[]) throws IOException
      {
            char ch;
            BufferedReader br = new BufferedReader(new InputStreamReader (System.in));
            System.out.println ("Enter any string of your choice (To terminate Press \'z\' ");
            do
            {
                  ch = (char) br.read ();
                  System.out.println (ch);
            } while (ch != 'z');
      }
}

الاخراج :

Scanner - طرق الادخال من وحدة التحكم في الجافا Java Input Console Reading-Console-Input-in-Java-output-2

هنا ، عندما تصادف z في سلسلة الحروف ، سيتوقف البرنامج عن عرض أي أحرف أخرى يدخلها المستخدم.

Scanner - طرق الادخال من وحدة التحكم في الجافا Java Input Console Reading-Console-Input-in-Java-output1


ثانيا :باستخدام فئة Scanner


تم تقديم فئة Scanner في JDK 1.5 وتم استخدامها على نطاق واسع.حيث توفر الفئة Scanner طرقًا متعددة لتيسير الطريقة التي نحصل بها على الإدخال من وحدة التحكم. يتم تعريف فئة الماسح الضوئي في java.util ، لذا تحتاج إلى استيراد الحزمة تلك أولاً.

يستخدم الماسح أيضًا System.in ويكون بناء الجملة الخاص به كما يلي:

الكود:
Scanner obj_name = new Scanner (System.in);


واليكم بعض أساليب الأداة المساعدة التى توفرها فئة Scanner كالتالي:



hasNext()تقوم بإرجاع قيمة منطقية اعتمادًا على ما إذا كان يتوفر أي رمز مميز أم لا. تقوم بإرجاع قيمة حقيقية true في حالة توفر أي رمز مميز. إلا أنه سيعود قيمة false .
hasNextInt()تقوم بإرجاع صحيح إذا كانت قيمة int قيد القراءة. إلا أنه سيعود قيمة خاطئة
hasNextFloat()تقوم بإرجاع صحيح إذا كانت قيمة تعويم قيد القراءة. إلا أنه سيعود قيمة خاطئة
hasNextBoolean()تقوم بإرجاع صحيح إذا كانت القيمة المنطقية قيد القراءة. إلا أنه سيعود قيمة خاطئة .
next()يقرأ الرمز التالي كسلسلة.
nextLine()يقرأ سطر الإدخال التالي كسلسلة.
nextInt()يقرأ قيمة الإدخال التالية كعدد صحيح.
nextDouble()يقرأ قيمة الإدخال التالية كقيمة مزدوجة.
دعونا نلقي نظرة على مثال لفهم المفهوم بطريقة أفضل. في هذا المثال ، سوف نقرأ الأرقام من المستخدم وسنجد مجموع هذه الأرقام ونعرض النتيجة عليه.

الكود:
import java.util.*;
class scanner_eg
{
      public static void main(String args[])
      {
            Scanner obj = new Scanner (System.in);
            double total = 0;
            System.out.println ("Enter numbers to add. Enter any string to end list.");
            while (obj.hasNext())
            {
                  if (obj.hasNextDouble())
                  {
                        total += obj.nextDouble();
                  }
                  else
                  {
                        break;
                  }
            }
            System.out.println ("Sum of the numbers is " + total);
      }
}

الاخراج :

Scanner - طرق الادخال من وحدة التحكم في الجافا Java Input Console Usin-Scanner-Class-Output

ثالثا : باستخدام فئة Console


هذه طريقة أخرى لقراءة إدخال المستخدم من وحدة التحكم في Java. تم تقديم طريقة قراءة إدخال المستخدم هذه في JDK 1.6. يستخدم هذا الأسلوب أيضًا System.in لقراءة الإدخال.

هذه الطريقة هي الأنسب لقراءة المدخلات التي لا تتطلب صدى إدخال المستخدم مثل قراءة كلمات مرور المستخدم. تقوم هذه التقنية بقراءة مدخلات المستخدم دون تكرار الأحرف التي أدخلها المستخدم.

يتم تعريف فئة وحدة التحكم في فئة java.io والتي يجب استيرادها قبل استخدام فئة وحدة التحكم.

دعونا نفكر في مثال .

الكود:
import java.io.*;
class consoleEg
{
      public static void main(String args[])
      {
            String name;
            System.out.println ("Enter your name: ");
            Console c = System.console();
            name = c.readLine();
            System.out.println ("Your name is: " + name);
      }
}

الاخراج :

Scanner - طرق الادخال من وحدة التحكم في الجافا Java Input Console Using-console-class
زهراء
زهراء
........
........

تاريخ التسجيل : 18/02/2011
المساهمات : 438
النقاط : 769
التقيم : 67
الدولة : مصر
الجنس : انثى

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى