إدخال البيانات في جافا | Input data in java

 إدخال البيانات في جافا

في الدروس السابقة, كنا نكتب الكود ثم نقوم بتجربته فيتنفذ كما هو, بمعنى أننا كنا أصلاً نعرف ما سيظهر عند تشغيل الكود لأننا قمنا بإدخال القيم في المتغيرات قبل تشغيل البرنامج.

 


في هذا الدرس ستتعلم كيف تنشئ برنامح يتفاعل مع المستخدم, حيث أنك عندما تقوم بتشغيله سيطلب من المستخدم إدخال بيانات, و بعد إدخالها سيقوم البرنامج بمعالجتها و فعل شيء معين بها.


الكلاس Scanner هو كلاس جاهز في جافا, يستخدم بشكل عام لجعل البرنامج يستقبل بيانات من المستخدم بالإضافة إلى إمكانية تحويل نوع هذه البيانات و التعديل عليها. و هو كبير جداُ حيث أنه يتألف من 9 كونستركتورات و أكثر من 50 دالة.

 

أنواع البيانات التي يمكن إستقبالها باستخدام الكلاس Scanner

  • أعداد صحيحة, أي أعداد لا تقبل الفاصلة, مثال: 123

  • أعداد تقبل الفاصلة العشرية, مثال: 10.55

  • حرف واحد ( سواء حرف, رقم, رمز ), مثال: a أو 3 أو @

  • كلمة واحدة, مثل harmash

  • سطر كامل ( أي أكثر من كلمة ), مثال: harmash.com is one of the best sites to learn programming

  • صح أو خطأ, أي إجبار المستخدم على إدخال كلمة واحدة و هي إما true و إما false


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


مصطلحات تقنية حول ادخال البيانات في جافا

  • Delimiter تعني الـ Pattern المستخدمة في تحديد شكل المسافات الفارغة White Spaces.
    سترى لاحقاً أنه بإمكانك جعل مترجم جافا يعتبر حرف أو كلمة أو جملة ما تبدو و كأنها مسافة فارغة White Space.

  • Console Application تعني البرنامج الذي يعمل بدون واجهة مستخدم ( أي بدون GUI).
    إذاً جميع البرامج التي فعلناها في الدروس السابقة تسمى Console Application لأن النتيجة التي كنا نراها عند تشغيل البرنامج, كانت تظهر في ما يسمى Console.

طريقة جعل البرنامج يستقبل بيانات من المستخدم في جافا

في لغة جافا لكي تجعل البرنامج يستقبل معلومات من المستخدم عليك إتباع ثلاث خطوات أساسية:

  1. إستدعاء الكلاس Scanner الذي يحتوي على دوال إدخال المعلومات من المستخدمين.

  2. إنشاء كائن من هذا الكلاس لأنك لا تستطيع إستخدام دوال الكلاس Scanner إلا من خلال الكائن الذي يشير إليه.

  3. إستدعاء إحدى دوال إدخال المعلومات من هذا الكائن.



إذاً ستحتاج إلى الأوامر التالية في كل برنامج ( يعتبر Console Application ) تطلب فيه من المستخدم إدخال بيانات من لوحة المفاتيح.

مثال

  1. إستدعاء الكلاس Scanner حتى نستطيع إنشاء كائن منه.

  2. import java.util.Scanner; 
    			

  3. إنشاء كائن من الكلاس Scanner, هنا قمنا بتسميته input.

  4. Scanner input = new Scanner(System.in); 
    			

  5. إستدعاء إحدى دوال إدخال البيانات من خلال كائن الـ Scanner الذي يفترض أنك قمت بإنشائه سابقاً.
    هنا قمنا بإستدعاء الدالة nextInt() من هذا الكائن و التي تعني أنه عند تشغيل البرنامج و عندما يأتي لتنفيذ هذا الكود, سيقوم بإنتظار المستخدم لإدخال عدد صحيح من لوحة المفاتيح, بعدها سيتم تخزين ما أدخله المستخدم في المتغير a.

  6. int a = input.nextInt();
    			

إنتبه

دائماً ضع دوال إستقبال البيانات بداخل الجملة try, و لا تنسى ايضاً إغلاق كائن الـ Scanner بواسطة الدالة close() مباشرةً عند الإنتهاء منه لتضمن عدم حدوث أي أخطاء من شأنها تعليق البرنامج.

 


كونستركتورات الكلاس Scanner في جافا

الجدول التالي يحتوي على جميع الـ constructors الموجودين في الكلاس Scanner.

الكونستركتور مع تعريفه
public Scanner(File Source) يستخدم هذا الكونستركتور لقراءة البيانات من ملف معين.
public Scanner(File Source, String charsetName) يستخدم هذا الكونستركتور لقراءة البيانات من ملف معين, مع تحديد الترميز المستخدم عند قراءتهم.
public Scanner(InputStream source) يستخدم هذا الكونستركتور لقراءة البيانات من كائن نوعه InputStream
public Scanner(InputStream source, String charsetName) يستخدم هذا الكونستركتور لقراءة البيانات من كائن نوعه InputStream مع تحديد الترميز المستخدم عند قراءتهم.
public Scanner(Path source) يستخدم هذا الكونستركتور لقراءة البيانات من الملف الذي يشير له كائن الـ Path
public Scanner(Path source, String charsetName) يستخدم هذا الكونستركتور لقراءة البيانات من الملف الذي يشير له كائن الـ Path مع تحديد الترميز المستخدم عند قراءتهم.
public Scanner(Readable Source) يستخدم هذا الكونستركتور لقراءة البيانات من كائن نوعه Readable
public Scanner(ReadableByteChannel source) يستخدم هذا الكونستركتور لقراءة البيانات من كائن نوعه ReadableByteChannel
public Scanner(ReadableByteChannel source, String charsetName) يستخدم هذا الكونستركتور لقراءة البيانات من كائن نوعه ReadableByteChannel مع تحديد الترميز المستخدم عند قراءتهم.

لاحقاً سنستخدم ثابت جاهز في جافا إسمه System.in لقراءة البيانات التي يدخلها المستخدم من لوحة المفاتيح (Keyboard).
الـ System.in عبارة عن InputStream يستخدم لجعل البرنامج يستقبل بيانات المستخدم من لوحة المفاتيح وقت التشغيل.


أمثلة شاملة حول أدخال بيانات من المستخدم في جافا

 مثال يشرح طريقة إدخال بيانات من المستخدم تخزينها في متغيرات في جافا

في المثال التالي قمنا بتعريف ثلاث متغيرات name, job, age. قمنا بتجهيز هذه المتغيرات لتخزين القيم التي سيطلب البرنامج من المستخدم إدخالها عند تشغيله.
سنستخدم الدالة nextLine() لإستقبال إسم المستخدم و وظيفته.
سنستخدم الدالة nextInt() لإستقبال عمرالمستخدم.


Main.java
                    import java.util.Scanner;                               // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);         // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    String name;                                    // سنستخدم هذا المتغير لحفظ الإسم الذي سيدخله المستخدم
                    String job;                                     // سنستخدم هذا المتغير لحفظ إسم الوظيفة الذي سيدخله المستخدم
                    int age;                                        // سنستخدم هذا المتغير لحفظ العمر الذي سيدخله المستخدم

                    try {
                    System.out.print("Enter a your name: ");    // هنا طلبنا من المستخدم إدخال إسمه
                    name = input.nextLine();                    // name هنا قمنا بإستقبال النص الذي سيدخله المستخدم و تخزينه في المتغير

                    System.out.print("Enter a your job: ");     // هنا طلبنا من المستخدم إدخال إسم الوظيفة
                    job = input.nextLine();                     // job هنا قمنا بإستقبال النص الذي سيدخله المستخدم و تخزينه في المتغير

                    System.out.print("Enter a your age: ");     // هنا طلبنا من المستخدم إدخال عمره
                    age = input.nextInt();                      // age هنا قمنا بإستقبال العدد الصحيح الذي سيدخله المستخدم و تخزينه في المتغير

                    // في الأخير سيتم عرض جميع المعلومات التي أدخلها المستخدم في لم يحدث أي خطأ أثناء إدخال البيانات
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("Name: " +name);
                    System.out.println("Job: " +job);
                    System.out.println("Age: " +age);
                    }
                    catch (Exception e) {                           // هنا سيتم إلتقاط أي خطأ قد يحدث و عرضه
                    System.out.print(e.toString());
                    }
                    finally {                                       // Scanner في حال تم أو لم يتم إدخال البيانات, سيتم إغلاق الـ
                    input.close();
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter a your name: alawiri saddam
Enter a your job: Programmer
Enter a your age: 28

----------- User Info ------------
Name:  alawiri saddam
Job: Programmer
Age: 22

 مثال يشرح طريقة إدخال بيانات من المستخدم و تخزينها في جافا

في المثال التالي قمنا إنشاء مصفوفة إسمها notes, نوعها float تتألف من خمس عناصر. قمنا بتجهيز هذه المصفوفة لتخزين العلامات التي يدخلها الطالب.
سنستخدم الدالة nextFloat() لإستقبال العلامات (أي الأرقام) التي يدخلها الطالب المستخدم لهذا التطبيق لأنه قد يدخل علامات بها فاصلة عشرية.
بعد إدخال جميع العلامات التي يطلبها البرنامج من المستخدم, سيطبع لها معدله الوسطي.


Main.java
                    import java.util.Scanner;                           // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);     // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    float[] notes = new float[5];               // سنستخدم هذه المصفوفة لتخزين جميع علامات المستخدم
                    float avg;                                  // سنستخدم هذا المتغير لتخزين المعدل الوسطي للمستخدم

                    System.out.println("Enter the notes of the following methods.");

                    try {

                    System.out.print("Java: ");             // هنا طلبنا من المستخدم إدخال علامة المادة الأولى
                    notes[0] = input.nextFloat();           // هنا قمنا بتخزين العلامة التي أدخلها في العنصر الأول في المصفوفة

                    System.out.print("HTML: ");             // هنا طلبنا من المستخدم إدخال علامة المادة الثانية
                    notes[1] = input.nextFloat();           // هنا قمنا بتخزين العلامة التي أدخلها في العنصر الثاني في المصفوفة

                    System.out.print("PHP: ");              // هنا طلبنا من المستخدم إدخال علامة المادة الثالثة
                    notes[2] = input.nextFloat();           // هنا قمنا بتخزين العلامة التي أدخلها في العنصر الثالث في المصفوفة

                    System.out.print("SQL: ");              // هنا طلبنا من المستخدم إدخال علامة المادة الرابعة
                    notes[3] = input.nextFloat();           // هنا قمنا بتخزين العلامة التي أدخلها في العنصر الرابع في المصفوفة

                    System.out.print("Linux: ");            // هنا طلبنا من المستخدم إدخال علامة المادة الخامسة
                    notes[4] = input.nextFloat();           // هنا قمنا بتخزين العلامة التي أدخلها في العنصر الخامس في المصفوفة

                    avg = (notes[0] + notes[1] + notes[2] + notes[3] + notes[4]) / 5;   // avg هنا قمنا بتخزين المعدل الوسطي في المتغير

                    if (avg >= 10) {                        // في حال كان المعدل أكبر أو يساوي 10, سيطبع الجملة التالية
                    System.out.println("Congratulation, your average is: " +avg);
                    }
                    else {                                  // في حال كان المعدل أقل من 10, سيطبع الجملة التالية
                    System.out.println("Sorry, you fail! your average is: " +avg);
                    }

                    }
                    catch (Exception e) {                       // هنا سيتم إلتقاط أي خطأ قد يحدث و عرضه
                    System.out.print(e.toString());
                    }
                    finally {                                   // Scanner في حال تم أو لم يتم إدخال البيانات, سيتم إغلاق الـ
                    input.close();
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter the notes of the following methods.
Java: 18.5
HTML: 20
PHP: 13.5
SQL: 9
Linux: 7
Congratulation, your average is: 13.6

 مثال يشرح طريقة إدخال بيانات من المستخدم و تخزينها في ملف في جافا

في المثال التالي قمنا بتعريف متغير إسمه name لحفظ إسم المستخدم, و متغير آخر إسمه password لحفظ كلمة المرور لهاذا المستخدم.
سنستخدم الدالة next() لإستقبال بيانات المستخدم.
بعد حفظ هذه البيانات في المتغيرات name و password, سنقوم بإنشاء ملف في جهاز المستخدم إسمه users.txt و نحفظ قيم هذه المتغيرات فيه.

ملاحظة: إستخدمنا الدالة next() بالتحديد لأن إسم المستخدم و كلمة المرور مهما كان حجمهما فإن كل واحد منهما يكون دائماً عبارة عن كلمة واحدة.


Main.java
                    import java.io.FileReader;         // و الذي سنستخدمه للقراءة من الملف الذي قمنا بإنشائه FileReader هنا قمنا باستدعاء الكلاس
                    import java.io.FileWriter;         // و الذي سنستخدمه للكتابة في الملف الذي سننشأه FileWriter هنا قمنا باستدعاء الكلاس
                    import java.util.Scanner;          // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);     // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    String name;                                // سنستخدم هذا المتغير لتخزين إسم المستخدم
                    String password;                            // سنستخدم هذا المتغير لتخزين كلمة مرور المستخدم

                    try {
                    System.out.print("User Name: ");        // هنا طلبنا من المستخدم إدخال علامة المادة الأولى
                    name = input.next();                    // هنا قمنا بتخزين العلامة التي أدخلها في العنصر الأول في المصفوفة

                    System.out.print("Password: ");         // هنا طلبنا من المستخدم إدخال علامة المادة الثانية
                    password = input.next();                // هنا قمنا بتخزين العلامة التي أدخلها في العنصر الثاني في المصفوفة

                    FileWriter fw = new FileWriter("users.txt", true);     // في حال لم يكن أصلاً موجوداً و فتحه للكتابة فيه users.txt لإنشاء ملف إسمه FileWriter هنا قمنا بإنشاء كائن نوعه

                    fw.write("User Name: " +name + "\n");                  // هنا قمنا بكتابة إسم المستخدم في الملف
                    fw.write("Password: " + password + "\n\n");            // ثم قمنا بكتابة كلمة المرور
                    fw.flush();                                            // بعدها قمنا بتفريغ الذاكرة
                    fw.close();                                            // بعدها قمنا بإغلاق الكائن المتصل بالملف

                    FileReader fr = new FileReader("users.txt");           // users.txt و الذي سنستخدمه لقراءة الأشياء الموجودة في الملف FileReader هنا قمنا بإنشاء كائن نوعه

                    int c;
                    while ((c = fr.read()) != -1) {     // هنا قمنا بإنشاء حلقة تمر على جميع أحرف الملف, في كل دورة تقرأ حرف من الملف
                    System.out.print((char)c);      // ثم تعرضه
                    }
                    fr.close();                         // بعدها قمنا بإغلاق الكائن المتصل بالملف
                    }
                    catch (Exception e) {                   // هنا سيتم إلتقاط أي خطأ قد يحدث و عرضه
                    System.out.print(e.toString());
                    }
                    finally {                               // Scanner في حال تم أو لم يتم إدخال البيانات, سيتم إغلاق الـ
                    input.close();
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

User Name: saddam
Password: abc@456

User Name: saddam
Password: abc@456

في حال قمنا بتشغيله من جديد, سنحصل على النتيجة التالية إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

User Name: Hala
Password: 1234Hacker@

User Name: saddam
Password: abc@456

User Name: Hala
Password: 1234Hacker@

 

Java دوال الكلاس Scanner في جافا

ملاحظة: في أغلب الأمثلة الموضوعة في الجدول التالي سنستخدم كونستركتور الكلاس Scanner الذي يأخذ String كـ Argument حتى ندخل بيانات مباشرةً في كائن الـ Scanner بدل إدخالها بواسطة دوال الإدخال. و النتيجة هي نفسها.
كما أننا لن نقوم باستخدام الجمل trycatchfinally ) حتى يكون التركيز فقط على الدوال التي نريدك أن تركز عليها.

عند التعامل مع الكلاس Scanner, كل دالة تبدأ بكلمة next تعتبر دالة من دوال الإدخال.
أمثلة: next() - nextLine() - nextInt() - nextFloat() إلخ..

 

java - الدالة next()

ترجع الكلمة التالية التي تم إدخالها في كائن الـ Scanner.


وتستخدم لاستقبال كلمه واحده من المستخدم .

بناؤها

                  public String next() 
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع الكلمة التالية التي تم إدخالها في كائن الـ Scanner.


أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع الكلمات الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner ثم تعرضها بواسطة الدالة next().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext() ترجع true.

المثال الأول

Main.java
                    import java.util.Scanner;

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // يحتوي على أي كلمة, قم بتنفيذ الأوامر التالية input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while (input.hasNext())
                    {
                    // على سطر جديد Scanner هنا في كل دورة سيتم طباعة الكلمة التالية الموجودة في كائن الـ
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math
                    operation:
                    2
                    +
                    3
                    =
                    5 
                  

في المثال التالي سيطلب البرنامج من المستخدم إدخال إسمه و إسم عائلته, بعدها سيقوم بعرض المعلومات التي قام بإدخلها.

المثال الثاني

Main.java
                    import java.util.Scanner;                               // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);         // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    String fname;                                   // سنستخدم هذا المتغير لحفظ الإسم الذي سيدخله المستخدم
                    String lname;                                   // سنستخدم هذا المتغير لحفظ إسم العائلة الذي سيدخله المستخدم

                    System.out.print("Enter your first name: ");    // هنا طلبنا من المستخدم إدخال إسمه
                    fname = input.next();                           // fname هنا قمنا بإستقبال الكلمة التي سيدخلها المستخدم و تخزينها في المتغير

                    System.out.print("Enter your last name: ");     // هنا طلبنا من المستخدم إدخال إسم عائلته
                    lname = input.next();                           // lname هنا قمنا بإستقبال الكلمة التي سيدخلها المستخدم و تخزينها في المتغير

                    // في الأخير سيتم عرض جميع المعلومات التي أدخلها المستخدم
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("First Name: " +fname);
                    System.out.println("Last Name: " +lname);

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter your first name: Saddam
Enter your last name: Alawiri

----------- User Info ------------
First Name: Saddam
Last Name: Alawiri

ملاحظة

هنا إفترضنا أن إسم المستخدم و إسم عائلته يتألف من كلمة واحدة فقط, فمثلاً إذا قام المستخدم بإدخال إسم مركب مثل Saddam Ali.
لن يتم تخزينه بشكل صحيح لأن الدالة next() تخزن كلمة واحدة عندما تقوم باستدعائها, أي إذا قمت بإدخال أكثر من كلمة ثم نقرت على زر Enter سيتم تخزين الكلمة الأولى فقط, أي سيتم تخزين الكلمة Saddam فقط.


Note

 ___________;&&&&________;

 java - الدالة next(Pattern pattern)

تعريفها

ترجع الكلمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت تتطابق مع كائن الـ Pattern الذي نمرره لها كـ Argument.


وتستخدم لاستقبال كلمه واحده من المستخدم

بناؤها

                  public String next(Pattern pattern)
                


باراميترات

pattern: هو كائن نوعه Pattern يمثل النص الذي سيتم البحث عنه في كائن الـ Scanner.



قيمة الإرجاع

ترجع الكلمة التالية التي تم إدخالها في كائن الـ Scanner و التي تتطابق مع كائن الـ Pattern الذي نمرره لها كـ Argument.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع الكلمات الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا باستدعاء الدالة next() مرتين.

المثال الأول

Main.java
                    import java.util.Scanner;           // Scanner هنا قمنا باستدعاء الكلاس
                    import java.util.regex.Pattern;     // Pattern هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // سيتم عرضها imple إذا كانت تبدأ بأي حرف,يليه input هنا سيتم فحص أول كلمة موجودة في الكائن
                    System.out.println(input.next(Pattern.compile(".imple")));

                    // إذا كانت تتألف من 4 أحرف سيتم عرضها input هنا سيتم فحص ثاني كلمة موجودة في الكائن
                    System.out.println(input.next(Pattern.compile("....")));

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math 
                  

في المثال التالي سيطلب البرنامج من المستخدم إدخال إسمه و إسم عائلته, بعدها سيقوم بعرض المعلومات التي قام بإدخلها.

المثال الثاني

Main.java
                    import java.util.Scanner;                             // Scanner هنا قمنا باستدعاء الكلاس
                    import java.util.regex.Pattern;                       // Pattern هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);       // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    String fname;                                 // سنستخدم هذا المتغير لحفظ الإسم الذي سيدخله المستخدم
                    String lname;                                 // سنستخدم هذا المتغير لحفظ إسم العائلة الذي سيدخله المستخدم

                    System.out.print("Enter first name: ");       // هنا طلبنا من المستخدم إدخال إسمه
                    fname = input.next(Pattern.compile("...*"));  // بشرط أن تتألف من 3 حروف على الأقل fname هنا قمنا بإستقبال الكلمة التي سيدخلها المستخدم و تخزينها في المتغير

                    System.out.print("Enter last name: ");        // هنا طلبنا من المستخدم إدخال إسم عائلته
                    lname = input.next(Pattern.compile("..."));   // بشرط أن تتألف من 3 حروف فقط lname هنا قمنا بإستقبال الكلمة التي سيدخلها المستخدم و تخزينها في المتغير

                    // في الأخير سيتم عرض جميع المعلومات التي أدخلها المستخدم
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("First Name: " +fname);
                    System.out.println("Last Name: " +lname);

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter first name: Saddam
Enter last name: Ali

----------- User Info ------------
First Name: Saddam
Last Name: Ali
__________&&&______;&&&___________;&&&&________;

 java - الدالة next(String pattern)

تعريفها

ترجع الكلمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت تتطابق مع الـ String الذي نمرره لها كـ Argument و الذي يمثل Pattern.


وتستخدم لاستقبال كلمه واحده من المستخدم

بناؤها

                  public String next(String pattern)
                


باراميترات

pattern: هو كائن نوعه String عبارة عن Pattern و يمثل النص الذي سيتم البحث عنه في كائن الـ Scanner.



قيمة الإرجاع

ترجع الكلمة التالية التي تم إدخالها في كائن الـ Scanner و التي تتطابق مع الـ String الذي نمرره لها كـ Argument.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع الكلمات الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا باستدعاء الدالة next() مرتين.

المثال الأول

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // سيتم عرضها imple إذا كانت تبدأ بأي حرف,يليه input هنا سيتم فحص أول كلمة موجودة في الكائن
                    System.out.println(input.next(".imple"));

                    // إذا كانت تتألف من 4 أحرف سيتم عرضها input هنا سيتم فحص ثاني كلمة موجودة في الكائن
                    System.out.println(input.next("...."));

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math 
                  

في المثال التالي سيطلب البرنامج من المستخدم إدخال إسمه و إسم عائلته, بعدها سيقوم بعرض المعلومات التي قام بإدخلها.

المثال الثاني

Main.java
                    import java.util.Scanner;                             // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);       // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    String fname;                                 // سنستخدم هذا المتغير لحفظ الإسم الذي سيدخله المستخدم
                    String lname;                                 // سنستخدم هذا المتغير لحفظ إسم العائلة الذي سيدخله المستخدم

                    System.out.print("Enter first name: ");       // هنا طلبنا من المستخدم إدخال إسمه
                    fname = input.next("...*");                   // بشرط أن تتألف من 3 حروف على الأقل fname هنا قمنا بإستقبال الكلمة التي سيدخلها المستخدم و تخزينها في المتغير

                    System.out.print("Enter last name: ");        // هنا طلبنا من المستخدم إدخال إسم عائلته
                    lname = input.next("...");                    // بشرط أن تتألف من 3 حروف فقط lname هنا قمنا بإستقبال الكلمة التي سيدخلها المستخدم و تخزينها في المتغير

                    // في الأخير سيتم عرض جميع المعلومات التي أدخلها المستخدم
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("First Name: " +fname);
                    System.out.println("Last Name: " +lname);

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter first name: Saddam
Enter last name: Ali

----------- User Info ------------
First Name: Saddam
Last Name: Ali
__________&&&______;&&&___________;&&&&________;

Java الدالة nextLine()

تعريفها

ترجع السطر التالي الذي تم إدخاله في كائن الـ Scanner.
و تستخدم ايضاً لإستقبال سطر كامل من المعلومات من المستخدم.



بناؤها

                  public String nextLine()
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع السطر التالي الذي تم إدخاله في كائن الـ Scanner.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع الأسطر الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل سطر موجود في كائن الـ Scanner ثم تعرضه بواسطة الدالة nextLine().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNextLine() ترجع true.

المثال الأول

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = " line 1 \n line 2 \n line 3";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // يحتوي عل سطر آخر, قم بطباعته input أي طالما أن الكائن ,true ترجع hasNextLine() هنا قلنا أنه طالما أن الدالة
                    while (input.hasNextLine())
                    {
                    System.out.println(input.nextLine());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    line 1
                    line 2
                    line 3
                  

في المثال التالي سيطلب البرنامج من المستخدم كتابة تعريف صغير حول موقع alawirisaddam.blogspot.com , بعدها سيقوم بعرض المعلومات التي قام بإدخلها.

المثال الثاني

Main.java
                    import java.util.Scanner;                               // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);         // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    String description;                             // سنستخدم هذا المتغير لحفظ النص الذي سيدخله المستخدم

                    System.out.println("What is alawirisaddam.blogspot.com?");     // alawirisaddam.blogspot.com هنا طلبنا من المستخدم كتابة تعريف صغير حول موقع
                    description = input.nextLine();                 // description هنا قمنا بإستقبال النص الذي سيدخله المستخدم و تخزينه في

                    // في الأخير سيتم عرض جميع المعلومات التي أدخلها المستخدم
                    System.out.println("\n----------- Website Description ------------");
                    System.out.println(description);

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

What is  alawirisaddam.blogspot.com?
alawirisaddam.blogspot.com is the biggest website that teach programming, networking and systems for free

----------- Website Description ------------
alawirisaddam.blogspot.com is the biggest website that teach programming, networking and systems for free
__________&&&______;&&&___________;&&&&________;

Java الدالة nextBoolean()

تعريفها

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع boolean, أي في حال كانت هذه القيمة true أو false ستقوم بإرجاعها.



بناؤها

                  public boolean nextBoolean()
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت من النوع boolean.
ترجعها كـ boolean.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • InputMismatchException: في حال كانت القيمة التالية ليست من النوع boolean.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع القيم الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner ثم تعرضها بواسطة الدالة next().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext() ترجع true.
إذا كانت الكلمة من النوع boolean سيكتب بجانبها (this is a boolean value).

المثال الأول

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "If you define a boolean variable, then it can take true or false as value";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // ليس فارغاً, قم بتنفيذ الأوامر الموجودة داخل الحلقة input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while(input.hasNext())
                    {
                    if(input.hasNextBoolean())
                    System.out.println(input.nextBoolean() + " (this is a boolean value)");
                    else
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    If
                    you
                    define
                    a
                    boolean
                    variable,
                    then
                    it
                    can
                    take
                    true (this is a boolean value)
                    or
                    false (this is a boolean value)
                    as
                    value 
                  

في المثال التالي سيطلب البرنامج من المستخدم الإجابة على بعض الأسئلة بصح أو خطأ ( أي بـ true أو false).
بعدها سيعرض له جميع الأسئلة و الأجوبة التي قام بإدخالها.

المثال الثاني

Main.java
                    import java.util.Scanner;                           // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);     // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    boolean answer_1;                           // سنستخدم هذا المتغير لحفظ عدد سنوات الخبرة التي سيدخلها المستخدم
                    boolean answer_2;                           // سنستخدم هذا المتغير لحفظ عدد سنوات الخبرة التي سيدخلها المستخدم
                    boolean answer_3;                           // سنستخدم هذا المتغير لحفظ عدد سنوات الخبرة التي سيدخلها المستخدم

                    // answer_1 هنا طلبنا من المستخدم الإجابة عن السؤال الأول و قمنا بتخزين الجواب الذي أدخله في المتغير
                    System.out.println("1) Are you a programmer?");
                    answer_1 = input.nextBoolean();

                    // answer_2 هنا طلبنا من المستخدم الإجابة عن السؤال الثاني و قمنا بتخزين الجواب الذي أدخله في المتغير
                    System.out.println("2) Do you like painting?");
                    answer_2 = input.nextBoolean();

                    // answer_3 هنا طلبنا من المستخدم الإجابة عن السؤال الثالث و قمنا بتخزين الجواب الذي أدخله في المتغير
                    System.out.println("3) Is your college better than harmash?");
                    answer_3 = input.nextBoolean();

                    // في الأخير سيتم عرض عدد سنوات الخبرة التي لدى المتسخدم
                    System.out.println("\n----------- User Answers ------------");
                    System.out.println("1) Are you a programmer? " +answer_1);
                    System.out.println("2) Do you like painting? " +answer_2);
                    System.out.println("3) Do you like alawiri.com? " +answer_3);

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

1) Are you a programmer?
true
2) Do you like painting?
false
3) Do you like alawiri.com?
true

----------- User Answers ------------
1) Are you a programmer? true
2) Do you like painting? false
3) Do you like alawiri.com? true
__________&&&______;&&&___________;&&&&________;

Java الدالة nextByte()

تعريفها

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع byte.



بناؤها

                  public byte nextByte() 
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت من النوع byte.
ترجعها كـ byte.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • InputMismatchException: في حال كانت القيمة التالية ليست من النوع byte و أيضاُ في حال كانت قيمتها العددية أكبر أو أصغر من القيمة الممكن تخزينها فيها.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع القيم الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner ثم تعرضها بواسطة الدالة next().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext() ترجع true.
إذا كانت الكلمة من النوع byte سيكتب بجانبها (this is a byte value).

المثال الأول

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // ليس فارغاً, قم بتنفيذ الأوامر الموجودة داخل الحلقة input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while(input.hasNext())
                    {
                    if(input.hasNextByte())
                    System.out.println(input.nextByte() + " (this is a byte value)");
                    else
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math
                    operation:
                    2 (this is a byte value)
                    +
                    3 (this is a byte value)
                    =
                    5 (this is a byte value) 
                  

في المثال التالي سيطلب البرنامج من المستخدم إدخال عدد صحيح يمثل عدد سنوات الخبرة التي لديه, بعدها سيقوم بعرضه.

المثال الثاني

Main.java
                    import java.util.Scanner;                                        // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);                  // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    byte year;                                               // سنستخدم هذا المتغير لحفظ عدد سنوات الخبرة التي سيدخلها المستخدم

                    System.out.print("Enter your years of experience: ");    // هنا طلبنا من المستخدم إدخال رقم يمثل عدد سنوات الخبرة التي لديه
                    year = input.nextByte();                                 // year هنا قمنا بإستقبال العدد الذي سيدخله المستخدم و تخزينه في المتغير

                    // في الأخير سيتم عرض عدد سنوات الخبرة التي لدى المتسخدم
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("User years experience: " +year+ " years");

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter your years of experience: 3

----------- User Info ------------
User years experience: 3 years
__________&&&______;&&&___________;&&&&________;

Java الدالة nextByte(int radix)

تعريفها

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع byte و كانت تتطابق مع الـ radix الذي نمرره لها كـ Argument.



بناؤها

                  public byte nextByte(int radix) 
                


باراميترات

الـ radix هو int يستخدم هنا لمعرفة إذا كانت القيمة التي نفحصها تمثل قيمة binary - octal - decimal - hexadecimal.
الـradix يمكن أن يكون 2 - 8 - 10 - 16 بالترتيب كما فوق.



قيمة الإرجاع

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت من النوع byte و كانت تتطابق مع الـ radix الذي نمرره لها كـ Argument.
ترجعها كـ byte.


أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • InputMismatchException: في حال كانت القيمة التالية ليست من النوع byte و أيضاُ في حال كانت قيمتها العددية أكبر أو أصغر من القيمة الممكن تخزينها فيها.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع القيم الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner ثم تعرضها بواسطة الدالة next().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext() ترجع true.
إذا كانت الكلمة من النوع byte و تتطابق مع الـ radix الموضوع سيكتب بجانبها (this is a byte value).

المثال الأول

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // ليس فارغاً, قم بتنفيذ الأوامر الموجودة داخل الحلقة input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while(input.hasNext())
                    {
                    if(input.hasNextByte(4))
                    System.out.println(input.nextByte(4) + " (this is a byte value)");
                    else
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math
                    operation:
                    2 (this is a byte value)
                    +
                    3 (this is a byte value)
                    =
                    5 
                  

في المثال التالي سيطلب البرنامج من المستخدم إدخال عدد صحيح يمثل عدد سنوات الخبرة التي لديه, بعدها سيقوم بعرضه.

المثال الثاني

Main.java
                    import java.util.Scanner;                                        // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);                  // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    byte year;                                               // سنستخدم هذا المتغير لحفظ عدد سنوات الخبرة التي سيدخلها المستخدم

                    System.out.print("Enter your years of experience: ");    // هنا طلبنا من المستخدم إدخال رقم يمثل عدد سنوات الخبرة التي لديه
                    year = input.nextByte(10);                               // year هنا قمنا بإستقبال العدد الذي سيدخله المستخدم و تخزينه في المتغير

                    // في الأخير سيتم عرض عدد سنوات الخبرة التي لدى المتسخدم
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("User years experience: " +year+ " years");

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter your years of experience: 3

----------- User Info ------------
User years experience: 3 years
__________&&&______;&&&___________;&&&&________;

Java الدالة nextDouble()

تعريفها

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع double.



بناؤها

                  public double nextDouble()
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع double.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • InputMismatchException: في حال كانت القيمة التالية ليست من النوع double و أيضاُ في حال كانت قيمتها العددية أكبر أو أصغر من القيمة الممكن تخزينها فيها.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع القيم الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner ثم تعرضها بواسطة الدالة next().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext() ترجع true.
إذا كانت الكلمة تعتبر من النوع double سيكتب بجانبها (this is a double value).

المثال الأول

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // ليس فارغاً, قم بتنفيذ الأوامر الموجودة داخل الحلقة input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while(input.hasNext())
                    {
                    if(input.hasNextDouble())
                    System.out.println(input.nextDouble() + " (this is a double value)");
                    else
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math
                    operation:
                    2.0 (this is a double value)
                    +
                    3.0 (this is a double value)
                    =
                    5.0 (this is a double value) 
                  

في المثال التالي سيطلب البرنامج من المستخدم إدخال متوسط راتبه الشهري, بعدها سيقوم بعرضه.

المثال الثاني

Main.java
                    import java.util.Scanner;                            // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);     // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    double salary;                              // سنستخدم هذا المتغير لحفظ قيمة الراتب الشهري التي سيدخلها المستخدم

                    System.out.print("Enter your salary: ");    // هنا طلبنا من المستخدم إدخال راتبه الشهري
                    salary = input.nextDouble();                // salary هنا قمنا بإستقبال العدد الذي سيدخله المستخدم و تخزينه في المتغير

                    // في الأخير سيتم عرض راتب المستخدم
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("User salary: " +salary+ "$" );

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter your salary: 850.55

----------- User Info ------------
User salary: 850.55$
__________&&&______;&&&___________;&&&&________;

Java الدالة nextFloat()

تعريفها

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع float.



بناؤها

                  public float nextFloat()
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع float.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • InputMismatchException: في حال كانت القيمة التالية ليست من النوع float و أيضاُ في حال كانت قيمتها العددية أكبر أو أصغر من القيمة الممكن تخزينها فيها.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع القيم الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner ثم تعرضها بواسطة الدالة next().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext() ترجع true.
إذا كانت الكلمة من النوع float سيكتب بجانبها (this is a float value).

المثال الأول

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // ليس فارغاً, قم بتنفيذ الأوامر الموجودة داخل الحلقة input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while(input.hasNext())
                    {
                    if(input.hasNextFloat())
                    System.out.println(input.nextFloat() + " (this is a float value)");
                    else
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math
                    operation:
                    2.0 (this is a float value)
                    +
                    3.0 (this is a float value)
                    =
                    5.0 (this is a float value) 
                  

في المثال التالي سيطلب البرنامج من المستخدم إدخال متوسط راتبه الشهري, بعدها سيقوم بعرضه.

المثال الثاني

Main.java
                    import java.util.Scanner;                            // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);     // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    float salary;                               // سنستخدم هذا المتغير لحفظ قيمة الراتب الشهري التي سيدخلها المستخدم

                    System.out.print("Enter your salary: ");    // هنا طلبنا من المستخدم إدخال راتبه الشهري
                    salary = input.nextFloat();                 // salary هنا قمنا بإستقبال العدد الذي سيدخله المستخدم و تخزينه في المتغير

                    // في الأخير سيتم عرض راتب المستخدم
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("User salary: " +salary+ "$" );

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter your salary: 850.55

----------- User Info ------------
User salary: 850.55$
__________&&&______;&&&___________;&&&&________;

Java الدالة nextInt()

تعريفها

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع int.



بناؤها

                  public int nextInt()
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع int.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • InputMismatchException: في حال كانت القيمة التالية ليست من النوع int و أيضاُ في حال كانت قيمتها العددية أكبر أو أصغر من القيمة الممكن تخزينها فيها.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع القيم الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner ثم تعرضها بواسطة الدالة next().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext() ترجع true.
إذا كانت الكلمة من النوع int سيكتب بجانبها (this is a int value).

المثال الأول

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // ليس فارغاً, قم بتنفيذ الأوامر الموجودة داخل الحلقة input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while(input.hasNext())
                    {
                    if(input.hasNextInt())
                    System.out.println(input.nextInt() + " (this is a int value)");
                    else
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math
                    operation:
                    2 (this is a int value)
                    +
                    3 (this is a int value)
                    =
                    5 (this is a int value) 
                  

في المثال التالي سيطلب البرنامج من المستخدم إدخال عدد صحيح ( يمثل id ), بعدها سيقوم بعرضه.

المثال الثاني

Main.java
                    import java.util.Scanner;                           // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);     // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    int id;                                     // الذي سيدخله المستخدم id سنستخدم هذا المتغير لحفظ رقم الـ

                    System.out.print("Enter your id: ");        // الخاص فيه id هنا طلبنا من المستخدم إدخال رقم الـ
                    id = input.nextInt();                       // id هنا قمنا بإستقبال العدد الذي سيدخله المستخدم و تخزينه في المتغير

                    // الذي قام بإدخاله id في الأخير سيتم عرض رقم الـ
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("User id: " +id);

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter your id: 125

----------- User Info ------------
User id: 125
__________&&&______;&&&___________;&&&&________;

Java الدالة nextInt(int radix)

تعريفها

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع int و كانت تتطابق مع الـ radix الذي نمرره لها كـ Argument.



بناؤها

                  public int nextInt(int radix)
                


باراميترات

الـ radix هو int يستخدم هنا لمعرفة إذا كانت القيمة التي نفحصها تمثل قيمة binary - octal - decimal - hexadecimal.
الـradix يمكن أن يكون 2 - 8 - 10 - 16 بالترتيب كما فوق.



قيمة الإرجاع

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت من النوع int و كانت تتطابق مع الـ radix الذي نمرره لها كـ Argument.
ترجعها كـ int.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • InputMismatchException: في حال كانت القيمة التالية ليست من النوع int و أيضاُ في حال كانت قيمتها العددية أكبر أو أصغر من القيمة الممكن تخزينها فيها.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع القيم الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner ثم تعرضها بواسطة الدالة next().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext() ترجع true.
إذا كانت الكلمة من النوع int و تتطابق مع الـ radix الموضوع سيكتب بجانبها (this is a int value).

مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // ليس فارغاً, قم بتنفيذ الأوامر الموجودة داخل الحلقة input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while(input.hasNext())
                    {
                    if(input.hasNextInt(4))
                    System.out.println(input.nextInt(4) + " (this is a int value)");
                    else
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math
                    operation:
                    2 (this is a int value)
                    +
                    3 (this is a int value)
                    =
                    5
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة nextLong()

تعريفها

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع long.



بناؤها

                  public long nextLong() 
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع long.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • InputMismatchException: في حال كانت القيمة التالية ليست من النوع long و أيضاُ في حال كانت قيمتها العددية أكبر أو أصغر من القيمة الممكن تخزينها فيها.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع القيم الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner ثم تعرضها بواسطة الدالة next().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext() ترجع true.
إذا كانت الكلمة من النوع long سيكتب بجانبها (this is a long value).

المثال الأول

Main.java
                    import java.util.Scanner;    // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // ليس فارغاً, قم بتنفيذ الأوامر الموجودة داخل الحلقة input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while(input.hasNext())
                    {
                    if(input.hasNextLong())
                    System.out.println(input.nextLong() + " (this is a long value)");
                    else
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math
                    operation:
                    2 (this is a long value)
                    +
                    3 (this is a long value)
                    =
                    5 (this is a long value) 
                  

في المثال التالي سيطلب البرنامج من المستخدم إدخال عدد صحيح ( يمثل id ), بعدها سيقوم بعرضه.

المثال الثاني

Main.java
                    import java.util.Scanner;                           // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);     // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    long id;                                    // الذي سيدخله المستخدم id سنستخدم هذا المتغير لحفظ رقم الـ

                    System.out.print("Enter your id: ");        // هنا طلبنا من المستخدم إدخال إسمه
                    id = input.nextLong();                      // id هنا قمنا بإستقبال العدد الذي سيدخله المستخدم و تخزينه في المتغير

                    // الذي قام بإدخاله id في الأخير سيتم عرض رقم الـ
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("User id: " +id);

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter your id: 125

----------- User Info ------------
User id: 125
__________&&&______;&&&___________;&&&&________;

Java الدالة nextLong(int radix)

تعريفها

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع long و كانت تتطابق مع الـ radix الذي نمرره لها كـ Argument.



بناؤها

                  public boolean nextLong(int radix)
                


باراميترات

الـ radix هو int يستخدم هنا لمعرفة إذا كانت القيمة التي نفحصها تمثل قيمة binary - octal - decimal - hexadecimal.
الـradix يمكن أن يكون 2 - 8 - 10 - 16 بالترتيب كما فوق.



قيمة الإرجاع

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت من النوع long و كانت تتطابق مع الـ radix الذي نمرره لها كـ Argument.
ترجعها كـ long.


أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • InputMismatchException: في حال كانت القيمة التالية ليست من النوع long و أيضاُ في حال كانت قيمتها العددية أكبر أو أصغر من القيمة الممكن تخزينها فيها.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع القيم الموجودة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner ثم تعرضها بواسطة الدالة next().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext() ترجع true.
إذا كانت الكلمة من النوع long و تتطابق مع الـ radix الموضوع سيكتب بجانبها (this is a long value).

مثال

Main.java
                    import java.util.Scanner;    // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // ليس فارغاً, قم بتنفيذ الأوامر الموجودة داخل الحلقة input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while(input.hasNext())
                    {
                    if(input.hasNextLong(4))
                    System.out.println(input.nextLong(4) + " (this is a long value)");
                    else
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math
                    operation:
                    2 (this is a long value)
                    +
                    3 (this is a long value)
                    =
                    5
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة radix()

تعريفها

ترجع الـ radix الإفتراضية لكائن الـ Scanner.



بناؤها

                  public int radix()
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

ترجع عدد صحيح نوعه int يمثل الـ radix الإفتراضية لكائن الـ Scanner.



مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(System.in);

                    // input الذي يستخدمه الكائن radix هنا قمنا بعرض نوع الـ
                    System.out.println("Used radix is: " +input.radix());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Used radix is: 10
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة nextShort(int radix)

تعريفها

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت هذه القيمة تعتبر من النوع short و كانت تتطابق مع الـ radix الذي نمرره لها كـ Argument.



بناؤها

                  public short nextShort(int radix)
                


باراميترات

الـ radix هو int يستخدم هنا لمعرفة إذا كانت القيمة التي نفحصها تمثل قيمة binary - octal - decimal - hexadecimal.
الـradix يمكن أن يكون 2 - 8 - 10 - 16 بالترتيب كما فوق.



قيمة الإرجاع

ترجع القيمة التالية التي تم إدخالها في كائن الـ Scanner في حال كانت من النوع short و كانت تتطابق مع الـ radix الذي نمرره لها كـ Argument.
ترجعها كـ short.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • InputMismatchException: في حال كانت القيمة التالية ليست من النوع short و أيضاُ في حال كانت قيمتها العددية أكبر أو أصغر من القيمة الممكن تخزينها فيها.

  • NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع القيم الموجودة في كائن الـ Scanner.

    .


في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner ثم تعرضها بواسطة الدالة next().
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext() ترجع true.
إذا كانت الكلمة من النوع short و تتطابق مع الـ radix الموضوع سيكتب بجانبها (this is a short value).

مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // ليس فارغاً, قم بتنفيذ الأوامر الموجودة داخل الحلقة input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while(input.hasNext())
                    {
                    if(input.hasNextShort(4))
                    System.out.println(input.nextShort(4) + " (this is a short value)");
                    else
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Simple
                    math
                    operation:
                    2 (this is a short value)
                    +
                    3 (this is a short value)
                    =
                    5
                  

Java دوال البحث الموجوده في الكلاس Scanner

Java الدالة findInLine()

تعريفها

ترجع الـ Pattern الذي يستخدمه كائن الـ Scanner.
findInLine تعني الأحرف ( أو نظام الأحرف ) الذي يستخدمه كائن الـ Scanner في تخزين البيانات المدخلة.



بناؤها

                  // الشكل الأول
                  public String findInLine(Pattern pattern)

                  // الشكل الثاني
                  public String findInLine(String pattern)
                


باراميترات

pattern: هو كائن نوعه Pattern أو String ( يمثل pattern ) كـ Argument.



قيمة الإرجاع

  • ترجع النص الذي يتطابق مع الـ Pattern.

  • ترجع null في حال لم يتم إيجاد نص يتطابق مع الـ Pattern.



أخطاء محتملة

IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.



في المثال التالي سندخل سطر من البيانات في كونستركتور كائن الـ Scanner.
سنستخدم الدالة findInLine() التي تأخذ كائن نوعه String كـ Argument.

المثال الأول

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // و بعدها سيتم عرض هذه الكلمة ath عن كلمة تبدأ بأي حرف و تنتهي بـ input هنا سيتم البحث في بيانات الكائن
                    System.out.println(input.findInLine(".ath"));

                    // input هنا قمنا بعرض باقي البيانات الموجودة في نفس السطر في الكائن
                    System.out.println(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    math
                    operation: 2 + 3 = 5 
                  

في المثال التالي سندخل سطر من البيانات في كونستركتور كائن الـ Scanner.
سنستخدم الدالة findInLine() التي تأخذ كائن نوعه Pattern كـ Argument.

المثال الثاني

Main.java
                    import java.util.Scanner;           // Scanner هنا قمنا باستدعاء الكلاس
                    import java.util.regex.Pattern;     // Pattern هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // و بعدها سيتم عرض هذه الكلمة ath عن كلمة تبدأ بأي حرف و تنتهي بـ input هنا سيتم البحث في بيانات الكائن
                    System.out.println(input.findInLine(Pattern.compile(".ath")));

                    // input هنا قمنا بعرض باقي البيانات الموجودة في نفس السطر في الكائن
                    System.out.println(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    math
                    operation: 2 + 3 = 5 
                  

في المثال التالي سندخل سطر من البيانات في كونستركتور كائن الـ Scanner.
سنستخدم الدالة findInLine() التي تأخذ كائن نوعه String كـ Argument.
إنتبه: هنا تعمدنا عدم إيجاد تطابق, أي البحث عن شيء غير موجود.

المثال الثالث

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // و بعدها سيتم عرض هذه الكلمة java عن كلمة تبدأ بأي حرف و تنتهي بـ input هنا سيتم البحث في بيانات الكائن
                    // null إذاً هنا سيتم طباعة
                    System.out.println(input.findInLine(".java"));

                    // تعيدك إلى أول حرف موجود فيه في حال لم تجد تطابق findInLine() لأن الدالة input هنا سيتم عرض كل البيانات الموجودة في كائن الـ
                    System.out.println(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    null
                    Simple math operation: 2 + 3 = 5 
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة findWithinHorizon()

تعريفها

تبحث في الـ Scanner الذي قام باستدعاءها عن أول مكان يتطابق مع الـ Pattern, و تبدأ في البحث من الـ index رقم 0 إلى الـ index الذي نضعه في الباراميتر الثاني.



بناؤها

                  // الشكل الأول
                  public String findWithinHorizon(Pattern pattern, int horizon)

                  // الشكل الثاني
                  public String findWithinHorizon(String pattern, int horizon)
                


باراميترات

  • pattern: هو كائن نوعه Pattern أو String ( يمثل pattern ) كـ Argument.

  • horizon: هو متغير نوعه int يمثل رقم الـ index الذي ستتوقف عنده عملية البحث.



قيمة الإرجاع

  • ترجع النص الذي يتطابق مع الـ Pattern.

  • ترجع null في حال لم يتم إيجاد نص يتطابق مع الـ Pattern.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • IllegalArgumentException: في حال كانت قيمة الـ horizon أصغر من صفر.



في المثال التالي سندخل سطر من البيانات في كونستركتور كائن الـ Scanner.
سنستخدم الدالة findWithinHorizon() التي تأخذ كائن نوعه String كـ Argument.

المثال الأول

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // يليه أي حرف , بعدها قمنا بطباعة النتيجة at عن كلمة تبدأ بأي حرف, يليه input هنا قمنا بالبحث في أول 11 حرف في الكائن
                    System.out.println(input.findWithinHorizon(".at.", 11));

                    // input هنا قمنا بعرض باقي البيانات الموجودة في نفس السطر في الكائن
                    System.out.println(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    math
                    operation: 2 + 3 = 5 
                  

المثال التالي هو نفس المثال السابق, لكننا قمنا باستخدام الدالة findWithinHorizon() التي تأخذ كائن نوعه Pattern كـ Argument.

المثال الثاني

Main.java
                    import java.util.Scanner;            // Scanner هنا قمنا باستدعاء الكلاس
                    import java.util.regex.Pattern;      // Pattern هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // يليه أي حرف , بعدها قمنا بطباعة النتيجة at عن كلمة تبدأ بأي حرف, يليه input هنا قمنا بالبحث في أول 11 حرف في الكائن
                    System.out.println(input.findWithinHorizon(Pattern.compile(".ath"), 11));

                    // input هنا قمنا بعرض باقي البيانات الموجودة في نفس السطر في الكائن
                    System.out.println(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    math
                    operation: 2 + 3 = 5 
                  

في المثال التالي سندخل سطر من البيانات في كونستركتور كائن الـ Scanner.
سنستخدم الدالة findWithinHorizon() التي تأخذ كائن نوعه String كـ Argument.
إنتبه: هنا ضيقنا نطاق البحث, و بحثنا في أول 7 أحرف فقط, و بالتالي تعمدنا عدم إيجاد تطابق.

المثال الثالث

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // يليه أي حرف , بعدها قمنا بطباعة النتيجة at عن كلمة تبدأ بأي حرف, يليه input هنا قمنا بالبحث في أول 7 أحرف في الكائن
                    // null إذاً هنا سيتم طباعة
                    System.out.println(input.findWithinHorizon(".at.", 7));

                    // تعيدك إلى أول حرف موجود فيه في حال لم تجد تطابق findWithinHorizon() لأن الدالة input هنا سيتم عرض كل البيانات الموجودة في كائن الـ
                    System.out.println(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    null
                    Simple math operation: 2 + 3 = 5 
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة match()

تعريفها

ترجع كائن نوعه MatchResult يمثل نتيجة آخر عملية بحث تم إجرائها على كائن الـ Scanner مع شرح مفصل.
و ترجع null في حال عدم حدوث أي إستثناء بسبب كائن الـ Scanner.



بناؤها

                  public MatchResult match() 
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

ترجع كائن نوعه MatchResult يمثل نتيجة آخر عملية بحث تم إجرائها على كائن الـ Scanner مع شرح مفصل.
و ترجع null في حال عدم حدوث أي إستثناء بسبب كائن الـ Scanner.



أخطاء محتملة

IllegalStateException: في حال لم يكن يوجد عملية تطابق سابقة.


مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // الموضوعة Pattern لأنه يوجد كلمة تتطابق مع الـ true و تنتهي بحرفين عشوائيين. سترجع ma هنا قمنا بالبحث عن كلمة تبدأ بـ
                    // لا يسبب مشاكل match() فهذا يعني أنها وجدت تتطابق و بالتالي أصبح استدعاء الدالة true بما أنها أرجعت
                    input.findInLine("ma..");

                    // هنا قمنا بطباعة نتيجة آخر عملية بحث فعلناها
                    System.out.println("Last match result: " + input.match());

                    // nextLine() بواسطة دالة الإدخال input هنا قمنا بعرض باقي البيانات الموجودة في نفس السطر في الكائن
                    System.out.println(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Last match result: java.util.regex.Matcher[pattern=ma.. region=0,32 lastmatch=math]
operation: 2 + 3 = 5

Java دوال التشييك الموجوده في الكلاس Scanner

Java الدالة hasNext()

تعريفها

ترجع true في حال كان يوجد كلمة تالية في كائن الـ Scanner.



بناؤها

                  public boolean hasNext() 
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع true في حال كان يوجد كلمة تالية في كائن الـ Scanner.



أخطاء محتملة

IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا باستدعاء الدالة hasNext() ثلاث مرات.

مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // لأنه تم إيجاد كلمة true هنا سترجع hasNext() الدالة
                    System.out.println("hasNext()? " + input.hasNext());

                    // لأنه تم إيجاد كلمة true هنا سترجع hasNext() الدالة
                    System.out.println("hasNext()? " + input.hasNext());

                    // nextLine() بواسطة دالة الإدخال input هنا قمنا بعرض باقي البيانات الموجودة في نفس السطر في الكائن
                    System.out.println(input.nextLine());

                    // input لأنه لم يعد يوجد أي كلمة بعد أن قمنا بالمرور على كامل البيانات الموجودة في الكائن false هنا سترجع hasNext() الدالة
                    System.out.println("hasNext()? " + input.hasNext());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    hasNext()? true
                    hasNext()? true
                    Simple math operation: 2 + 3 = 5
                    hasNext()? false 
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة hasNext(Pattern pattern)

تعريفها

ترجع true في حال كان يوجد نص تالي في كائن الـ Scanner قيمته تساوي قيمة نص الـ Pattern التي نمررها لها كـ Argument.



بناؤها

                  public boolean hasNext(Pattern pattern)
                


باراميترات

pattern: هو كائن نوعه Pattern يمثل النص الذي سيتم البحث عنه في كائن الـ Scanner.



قيمة الإرجاع

ترجع true في حال كان يوجد نص تالي في كائن الـ Scanner قيمته تساوي قيمة نص الـ Pattern التي نمررها لها كـ Argument.



أخطاء محتملة

IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا باستدعاء الدالة hasNext() ثلاث مرات, و كل مرة حاولنا البحث عن كلمة مختلفة.

مثال

Main.java
                    import java.util.Scanner;             // Scanner هنا قمنا باستدعاء الكلاس
                    import java.util.regex.Pattern;       // Pattern هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // mple لأنه تم إيجاد كلمة تبدأ بحرفين يليهما true هنا سترجع hasNext() الدالة
                    System.out.println("hasNext()? " + input.hasNext(Pattern.compile("..mple")));

                    // next() بواسطة دالة الإدخال input هنا قمنا بعرض الكلمة التالية الموجودة في الكائن
                    System.out.println(input.next());

                    // يليه حرف at لأنه تم إيجاد كلمة تبدأ بحرف يليه true هنا سترجع hasNext() الدالة
                    System.out.println("hasNext()? " + input.hasNext(Pattern.compile(".at.")));

                    // next() بواسطة دالة الإدخال input هنا قمنا بعرض الكلمة التالية الموجودة في الكائن
                    System.out.println(input.next());

                    // java لأنه لم يجد كلمة تبدأ بحرف يليه false هنا سترجع hasNext() الدالة
                    System.out.println("hasNext()? " + input.hasNext(Pattern.compile(".java")));

                    // nextLine() بواسطة دالة الإدخال input هنا قمنا بعرض باقي البيانات الموجودة في نفس السطر في الكائن
                    System.out.println(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    hasNext()? true
                    Simple
                    hasNext()? true
                    math
                    hasNext()? false
                    operation: 2 + 3 = 5 
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة hasNext(String pattern)

تعريفها

ترجع true في حال كان يوجد نص تالي في كائن الـ Scanner قيمته تساوي قيمة الـ String (التي تمثل Pattern) التي نمررها لها كـ Argument.



بناؤها

                  public boolean hasNext(String pattern) 
                


باراميترات

pattern: هو كائن نوعه String عبارة عن Pattern و يمثل النص الذي سيتم البحث عنه في كائن الـ Scanner.



قيمة الإرجاع

ترجع true في حال كان يوجد نص تالي في كائن الـ Scanner قيمته تساوي قيمة نص الـ Pattern التي نمررها لها كـ Argument.



أخطاء محتملة

IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا باستدعاء الدالة hasNext() ثلاث مرات, و كل مرة حاولنا البحث عن كلمة مختلفة.

مثال

Main.java
                    import java.util.Scanner;             // Scanner هنا قمنا باستدعاء الكلاس
                    import java.util.regex.Pattern;       // Pattern هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // mple لأنه تم إيجاد كلمة تبدأ بحرفين يليهما true هنا سترجع hasNext() الدالة
                    System.out.println("hasNext()? " + input.hasNext(Pattern.compile("..mple")));

                    // next() بواسطة دالة الإدخال input هنا قمنا بعرض الكلمة التالية الموجودة في الكائن
                    System.out.println(input.next());

                    // يليه حرف at لأنه تم إيجاد كلمة تبدأ بحرف يليه true هنا سترجع hasNext() الدالة
                    System.out.println("hasNext()? " + input.hasNext(Pattern.compile(".at.")));

                    // next() بواسطة دالة الإدخال input هنا قمنا بعرض الكلمة التالية الموجودة في الكائن
                    System.out.println(input.next());

                    // java لأنه لم يجد كلمة تبدأ بحرف يليه false هنا سترجع hasNext() الدالة
                    System.out.println("hasNext()? " + input.hasNext(Pattern.compile(".java")));

                    // nextLine() بواسطة دالة الإدخال input هنا قمنا بعرض باقي البيانات الموجودة في نفس السطر في الكائن
                    System.out.println(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    hasNext()? true
                    Simple
                    hasNext()? true
                    math
                    hasNext()? false
                    operation: 2 + 3 = 5 
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة hasNextInt()

تعريفها

ترجع true في حال كان يوجد قيمة تالية في كائن الـ Scanner يمكن التعامل معها كـ int.



بناؤها

                  public boolean hasNextInt() 
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع true في حال كان يوجد قيمة تالية في كائن الـ Scanner يمكن التعامل معها كـ int.



أخطاء محتملة

IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner من خلال الدالة hasNext().
كل كلمة نمر عليها سيتم إستدعاء الدالة hasNextInt() عليها لمعرفة إذا كانت هذه الكلمة تمثل قيمة من النوع الـ int.

مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // يحتوي على أي كلمة, قم بتنفيذ الأوامر التالية input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while (input.hasNext())
                    {
                    // int يمكن التعامل معها كـ input إذا كانت الكلمة التالية الموجودة في الكائن true سيتم طباعة
                    System.out.println("hasNextInt()? " + input.hasNextInt());

                    // هنا في كل دورة سيتم طباعة الكلمة التي سيتم فحص نوعها
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    hasNextInt()? false
                    Simple
                    hasNextInt()? false
                    math
                    hasNextInt()? false
                    operation:
                    hasNextInt()? true
                    2
                    hasNextInt()? false
                    +
                    hasNextInt()? true
                    3
                    hasNextInt()? false
                    =
                    hasNextInt()? true
                    5
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة hasNextInt(int radix)

تعريفها

ترجع true في حال كان يوجد قيمة تالية في كائن الـ Scanner يمكن التعامل معها كـ int و تتطابق مع الـ radix الذي نمرره لها كـ Argument.



بناؤها

                  public boolean hasNextInt(int radix) 
                


باراميترات

الـ radix هو int يستخدم هنا لمعرفة إذا كانت قيمة الكلمة التي نفحصها تمثل قيمة binary - octal - decimal - hexadecimal.
الـradix يمكن أن يكون 2 - 8 - 10 - 16 بالترتيب كما فوق.



قيمة الإرجاع

ترجع true في حال كان يوجد قيمة تالية في كائن الـ Scanner يمكن التعامل معها كـ int و تتطابق مع الـ radix الذي نمرره لها كـ Argument.



أخطاء محتملة

IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while تمر على كل كلمة موجودة في كائن الـ Scanner من خلال الدالة hasNext().
كل كلمة نمر عليها سيتم إستدعاء الدالة hasNextInt(2) عليها لمعرفة إذا كانت هذه الكلمة تمثل قيمة من النوع الـ int و إذا كانت تساوي 0 أو 1 فقط.

مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 0 + 1 + 1 = 2";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // يحتوي على أي كلمة, قم بتنفيذ الأوامر التالية input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while (input.hasNext())
                    {
                    // و كانت تساوي 0 أو 1 فقط int يمكن التعامل معها كـ input إذا كانت الكلمة التالية الموجودة في الكائن true سيتم طباعة
                    System.out.println("hasNextInt()? " + input.hasNextInt(2));

                    // هنا في كل دورة سيتم طباعة الكلمة التي سيتم فحص نوعها
                    System.out.println(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    hasNextInt()? false
                    Simple
                    hasNextInt()? false
                    math
                    hasNextInt()? false
                    operation:
                    hasNextInt()? true
                    0
                    hasNextInt()? false
                    +
                    hasNextInt()? true
                    1
                    hasNextInt()? false
                    +
                    hasNextInt()? true
                    1
                    hasNextInt()? false
                    =
                    hasNextInt()? false
                    2 
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة hasNextLine()

تعريفها

ترجع true في حال كان يوجد سطر تالي في كائن الـ Scanner.
تذكر: أن كل \n تعني إبدأ سطر جديد.



بناؤها

                  public boolean hasNextLine() 
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع true في حال كان يوجد سطر تالي في كائن الـ Scanner.



أخطاء محتملة

IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بإنشاء حلقة while, الهدف منها طباعة محتوى كائن الـ Scanner سطراً سطراً.
في كل دورة سيتم طباعة محتوى سطر كامل من الأسطر الموجودة في كائن الـ Scanner بواسطة الدالة nextLine().

مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = " line 1 \n line 2 \n line 3";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    while (input.hasNextLine())
                    {
                    // int يمكن التعامل معها كـ input إذا كانت الكلمة التالية الموجودة في الكائن true سيتم طباعة
                    System.out.println("hasNextLine()? " + input.hasNextLine());

                    // هنا في كل دورة سيتم طباعة الكلمة التي سيتم فحص نوعها
                    System.out.println(input.nextLine());
                    }

                    // input سيكون الرنامج قد مر على جميع الأسطار الموجودة في الكائن while لأنه بعد إنتهاء الحلقة false سيتم طباعة
                    System.out.println("hasNextLine()? " + input.hasNextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    hasNextLine()? true
                    line 1
                    hasNextLine()? true
                    line 2
                    hasNextLine()? true
                    line 3
                    hasNextLine()? false 
                  

Java دوال المعالجة الموجودة في الكلاس Scanner

Java الدالة close()

تعريفها

تغلق الـ Scanner, أي تمنع إدخال أي بيانات جديدة في البرنامج عن طريق كائن الـ Scanner.
من المهم جدا إغلاق كائن الـ Scanner عند الإنتهاء منه حتى تضمن عدم حدوث أي مشكلة في حال إستخدمت كلاس أو إنترفيس آخر في البرنامج يستخدم بدوره الكلاس Scanner.



بناؤها

                  public void close()
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

لا ترجع قيمة.



في المثال التالي سيطلب البرنامج من المستخدم إدخال عمره و وظيفته, بعدها سيقوم بعرض المعلومات التي قام بإدخلها.

المثال الأول

Main.java
                    import java.util.Scanner;                               // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);         // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    String name;                                    // سنستخدم هذا المتغير لحفظ الإسم الذي سيدخله المستخدم
                    String job;                                     // سنستخدم هذا المتغير لحفظ إسم الوظيفة الذي سيدخله المستخدم

                    System.out.print("Enter your name: ");          // هنا طلبنا من المستخدم إدخال إسمه
                    name = input.nextLine();                        // name هنا قمنا بإستقبال النص الذي سيدخله المستخدم و تخزينه في المتغير

                    System.out.print("Enter your job: ");           // هنا طلبنا من المستخدم إدخال إسم الوظيفة
                    job = input.nextLine();                         // job هنا قمنا بإستقبال النص الذي سيدخله المستخدم و تخزينه في المتغير

                    // في الأخير سيتم عرض جميع المعلومات التي أدخلها المستخدم في لم يحدث أي خطأ أثناء إدخال البيانات
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("Name: " +name);
                    System.out.println("Job: " +job);

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل إذا قمنا بإدخال نفس المعلومات التي أدخلناها عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter your name: saddam alawiri
Enter your job: Programmer

----------- User Info ------------
Name: saddam alawiri
Job: Programmer

المثال التالي هو نفس المثال السابق و لكننا قمنا بإغلاق كائن الـ Scanner بعد إدخال الإسم, الأمر الذي سيؤدي إلى حدوث خطأ منطقي أثناء تشغيل البرنامج لأنه سيجد أنك حاولت إدخال بيانات في حين أنك قمت بإغلاق كائن الـ Scanner الذي يسمح بإدخال البيانات.

المثال الثاني

Main.java
                    import java.util.Scanner;                               // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    Scanner input = new Scanner(System.in);         // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس

                    String name;                                    // سنستخدم هذا المتغير لحفظ الإسم الذي سيدخله المستخدم
                    String job;                                     // سنستخدم هذا المتغير لحفظ إسم الوظيفة الذي سيدخله المستخدم

                    System.out.print("Enter your name: ");          // هنا طلبنا من المستخدم إدخال إسمه
                    name = input.nextLine();                        // name هنا قمنا بإستقبال النص الذي سيدخله المستخدم و تخزينه في المتغير

                    input.close();                                  // Scanner هنا قمنا بإغلاق كائن الـ

                    System.out.print("Enter your job: ");           // هنا طلبنا من المستخدم إدخال إسم الوظيفة
                    job = input.nextLine();                         // job هنا قمنا بإستقبال النص الذي سيدخله المستخدم و تخزينه في المتغير

                    // في الأخير سيتم عرض جميع المعلومات التي أدخلها المستخدم في لم يحدث أي خطأ أثناء إدخال البيانات
                    System.out.println("\n----------- User Info ------------");
                    System.out.println("Name: " +name);
                    System.out.println("Job: " +job);

                    }

                    }
                  

سيتوقف البرنامج و يظهر الخطأ التالي عند تشغيل البرنامج.
قمنا بتعليم البيانات التي إنتظرنا البرنامج لإدخالها من لوحة المفاتيح باللون الأصفر.

Enter your name: saddam alawiri
Exception in thread "main" java.lang.IllegalStateException: Scanner closed
Enter your job:
__________&&&______;&&&___________;&&&&________;

Java الدالة delimiter()

تعريفها

ترجع الـ Pattern الذي يستخدمه كائن الـ Scanner في تحديد شكل المسافات الفارغة.
Delimiter تعني الـ Pattern المستخدمة في تحديد شكل المسافات الفارغة White Spaces.

 

بناؤها

                  public Pattern delimiter() 
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

ترجع الـ Pattern الذي يستخدمه كائن الـ Scanner في تحديد شكل المسافات الفارغة.



مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(System.in);

                    // input الذي يستخدمه الكائن delimiter هنا قمنا بعرض الـ
                    System.out.println("Used Delimiter: " +input.delimiter());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Used Delimiter: \p{javaWhitespace}+
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة locale()

تعريفها

ترجع كائن نوعه Locale يمثل نوع الترميز الذي يستخدمه كائن الـ Scanner عند قراءة و تخزين البيانات.
من المهم جداً معرفة نوع الترميز المستخدم في حال كنت تنوي إستخدام Regular Expressions للتعامل مع البيانات التي تم إدخالها.

لتحديد نوع الترميز الذي سيتسخدمه كائن الـ Scanner نستخدم الدالة useLocale().



بناؤها

                  public Locale locale() 
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

ترجع كائن نوعه Locale يمثل نوع الترميز الذي يستخدمه كائن الـ Scanner عند قراءة و تخزين البيانات.



مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(System.in);

                    // input هنا قمنا بعرض نوع الترميز الذي يستخدمه الكائن
                    System.out.println("Used locale is: " +input.locale());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Used locale is: en_US
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة radix()

تعريفها

ترجع الـ radix الإفتراضية لكائن الـ Scanner.



بناؤها

                  public int radix()
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

ترجع عدد صحيح نوعه int يمثل الـ radix الإفتراضية لكائن الـ Scanner.



مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(System.in);

                    // input الذي يستخدمه الكائن radix هنا قمنا بعرض نوع الـ
                    System.out.println("Used radix is: " +input.radix());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Used radix is: 10
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة reset()

تعريفها

ترجع الخصائص الإفتراضية لكائن الـ Scanner.



بناؤها

                  public Scanner reset()
                


باراميترات

لا تقبل أي باراميتر.



قيمة الإرجاع

ترجع الخصائص الإفتراضية لكائن الـ Scanner.



مثال

Main.java
                    import java.util.Scanner;       // Scanner هنا قمنا باستدعاء الكلاس
                    import java.util.Locale;        // Locale  هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(System.in);

                    // الإفتراضية input هنا قمنا بعرض خصائص الكائن
                    System.out.println("Default local is: " +input.locale());
                    System.out.println("Default Radix is: " +input.radix());
                    System.out.println();

                    // input هنا قمنا بتغيير نوع الترميز الذي يستخدمه الكائن
                    input.useLocale(Locale.FRANCE);
                    // input الذي يستخدمه الكائن radix هنا قمنا بتغيير نوع الـ
                    input.useRadix(16);

                    // input هنا قمنا بعرض الخصائص الجديدة التي وضعناها للكائن
                    System.out.println("New local is: " +input.locale());
                    System.out.println("New Radix is: " +input.radix());
                    System.out.println();

                    // input هنا قمنا بإرجاع الخصائص اللإفتراضية للكائن
                    input.reset();

                    // من جديد input هنا قمنا بعرض خصائص الكائن
                    System.out.println("Default local is: " +input.locale());
                    System.out.println("Default Radix is: " +input.radix());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Default local is: en_US
                    Default Radix is: 10

                    New local is: fr_FR
                    New Radix is: 16

                    Default local is: en_US
                    Default Radix is: 10 
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة skip(Pattern pattern)

تعريفها

تتخطى النص التالي في كائن الـ Scanner في حال كان يتطابق مع كائن الـ Pattern مع تجاهل الـ delimiters.



بناؤها

                  public Scanner skip(Pattern pattern)
                


باراميترات

pattern: هو كائن نوعه Pattern يمثل النص الذي سيتم تخطيه في كائن الـ Scanner.



قيمة الإرجاع

ترجع بيانات كائن الـ Scanner التي بقيت بعد عملية التخطي.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • NoSuchElementException: في حال لم يتم إيجاد نص يتطابق مع الـ Pattern.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا باستخدام الدالة skip() لتخطي الكلمة الأولى التي تم إدخالها في كائن الـ Scanner.

مثال

Main.java
                    import java.util.Scanner;               // Scanner هنا قمنا باستدعاء الكلاس
                    import java.util.regex.Pattern;         // Pattern هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // input هنا سيتم تجاوز أول 7 أحرف موجودة في الكائن
                    input.skip(Pattern.compile("......."));

                    // input هنا قمنا بعرض باقي البيانات الموجودة في نفس السطر في الكائن
                    System.out.println(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    math operation: 2 + 3 = 5
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة skip(String pattern)

تعريفها

تتخطى النص التالي في كائن الـ Scanner في حال كان يتطابق مع الـ String الذي نمرره لها كـ Argument و الذي يمثل Pattern مع تجاهل الـ delimiters.



بناؤها

                  public Scanner skip(String pattern)
                


باراميترات

pattern: هو كائن نوعه String يمثل النص الذي سيتم تخطيه في كائن الـ Scanner.



قيمة الإرجاع

ترجع بيانات كائن الـ Scanner التي بقيت بعد عملية التخطي.



أخطاء محتملة

  • IllegalStateException: في حال كان كائن الـ Scanner مغلقاً.

  • NoSuchElementException: في حال لم يتم إيجاد نص يتطابق مع الـ Pattern.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا باستخدام الدالة skip() لتخطي الكلمة الأولى التي تم إدخالها في كائن الـ Scanner.

مثال
Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Simple math operation: 2 + 3 = 5";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // input هنا سيتم تجاوز أول 7 أحرف موجودة في الكائن
                    input.skip(".......");

                    // input هنا قمنا بعرض باقي البيانات الموجودة في نفس السطر في الكائن
                    System.out.println(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    math operation: 2 + 3 = 5
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة toString()

تعريفها

ترجع String تمثل كافة معلومات كائن الـ Scanner.



بناؤها

                  public String toString()
                


باراميترات

ليس لها باراميتر.



قيمة الإرجاع

ترجع String تمثل كافة معلومات كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا بعرض كافة معلومات كائن الـ Scanner.

مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(System.in);

                    // input هنا قمنا بطباعة كافة معلومات الكائن
                    System.out.println(input.toString());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    java.util.Scanner[delimiters=\p{javaWhitespace}+][position=0][match valid=false][need input=false][source closed=false][skipped=false][group separator=\,][decimal separator=\.][positive prefix=][negative prefix=\Q-\E][positive suffix=][negative suffix=][NaN string=\Q�\E][infinity string=\Q∞\E]
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة useDelimiter(Pattern pattern)

تعريفها

تستخدم لجعل حرف أو كلمة أو جملة تبدو كمسافة فارغة في كائن الـ Scanner.
ملاحظة: الحرف أو الكلمة أو الجملة التي يتم جعلها تبدو كمسافة فارغة, ستظهر هكذا فقط أمام دوال التشييك الموجودة في الكلاس Scanner.

 

بناؤها

                  public Scanner useDelimiter(Pattern pattern)
                


باراميترات

pattern: هو كائن نوعه Pattern يمثل النص الذي سيتم إعتباره مسافة فارغة في كائن الـ Scanner.



قيمة الإرجاع

ترجع النص الذي يتطابق مع الـ Pattern كمسافة فارغة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا باستخدام الدالة useDelimiter() لتحويل كل كلمة java يتم إيجادها إلى مسافة فارغة.

مثال
Main.java
                    import java.util.Scanner;              // Scanner هنا قمنا باستدعاء الكلاس
                    import java.util.regex.Pattern;        // Pattern هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "First you should study java 101, then java 102, then java 103 etc..";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // يتم إيجادها تمثل مسافة فارغة java هنا قلنا أنه سيتم إعتبار كل كلمة
                    input.useDelimiter(Pattern.compile("java"));

                    // يحتوي على أي كلمة, سيتم طباعتها input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    // مسافة فارغة كلما وجدها لأنه قام بالتشييك عليها قبل أن يطبعها java تذكر أنه سيعتبر الكلمة
                    while (input.hasNext())
                    {
                    System.out.print(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    First you should study&nbsp 101, then&nbsp 102, then&nbsp 103 etc..
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة useDelimiter(String pattern)

تعريفها

تستخدم لجعل حرف أو كلمة أو جملة تبدو كمسافة فارغة في كائن الـ Scanner.
ملاحظة: الحرف أو الكلمة أو الجملة التي يتم جعلها تبدو كمسافة فارغة, ستظهر هكذا فقط أمام دوال التشييك الموجودة في الكلاس Scanner.

 

بناؤها

                  public Scanner useDelimiter(String pattern)
                


باراميترات

pattern: هو كائن نوعه String يمثل النص الذي سيتم إعتباره مسافة فارغة في كائن الـ Scanner.



قيمة الإرجاع

ترجع النص الذي يتطابق مع الـ Pattern كمسافة فارغة في كائن الـ Scanner.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا باستخدام الدالة useDelimiter() لتحويل كل كلمة java يتم إيجادها إلى مسافة فارغة.

مثال

Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "First you should study java 101, then java 102, then java 103 etc..";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // يتم إيجادها تمثل مسافة فارغة java هنا قلنا أنه سيتم إعتبار كل كلمة
                    input.useDelimiter("java");

                    // يحتوي على أي كلمة, سيتم طباعتها input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    // مسافة فارغة كلما وجدها لأنه قام بالتشييك عليها قبل أن يطبعها java تذكر أنه سيعتبر الكلمة
                    while (input.hasNext())
                    {
                    System.out.print(input.next());
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    First you should study&nbsp 101, then&nbsp 102, then&nbsp 103 etc..
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة useLocale(Locale locale)

تعريفها

تستخدم لتحديد الترميز الذي سيستخدمه كائن الـ Scanner عند قراءة و تخزين البيانات.

 

بناؤها

                  public Scanner useLocale(Locale locale)
                


باراميترات

locale: هو كائن نوعه Locale يحدد الترميز الذي سيستخدمه كائن الـ Scanner.



قيمة الإرجاع

ترجع النص الموجود في كائن الـ Scanner بالترميز الذي تم تحديده.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا باستخدام الدالة useLocale() لتغيير نوع الترميز حتى يناسب اللغة الفرنسية.

مثال

Main.java
                    import java.util.Locale;         // Locale هنا قمنا باستدعاء الكلاس
                    import java.util.Scanner;        // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "Java est un langage de programmation informatique orienté objet créé par James Gosling";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // هنا قمنا باعتماد ترميز اللغة الفرنسية, لأننا نتعامل مع بيانات مكتوبة باللغة الفرنسية
                    input.useLocale(Locale.FRANCE);

                    // Scanner هنا قمنا بطباعة النص الموجود في كائن الـ
                    System.out.print(input.nextLine());

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    Java est un langage de programmation informatique orienté objet créé par James Gosling
                  
__________&&&______;&&&___________;&&&&________;

Java الدالة useRadix (int radix)

تعريفها

تستخدم لتحديد الـ radix الذي سيستخدمه كائن الـ Scanner عند قراءة و تخزين أي رقم.
ملاحظة: الأرقام أو الأحرف التي يتم تحويل نوعها إلى نوع آخر, تظهر قيمتها الجديدة فقط إذا قمت بعرضها باستخدام الدوال التي تعرض الشيء كرقم, مثل nextInt(), nextLong()

 

بناؤها

                  public Scanner useRadix(int radix)
                


باراميترات

الـ radix هو int يستخدم هنا لمعرفة إذا كانت قيمة الكلمة التي نفحصها تمثل قيمة binary - octal - decimal - hexadecimal.
الـ radix يمكن أن يكون 2 - 8 - 10 - 16 بالترتيب كما فوق.



قيمة الإرجاع

ترجع الأرقام الموجودة في كائن الـ Scanner بالـ radix الذي تم تحديده.



في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner.
بعدها قمنا باستخدام الدالة useRadix() لتحويل نوع أي رقم أو حرف موجود في كائن الـ Scanner إلى النوع hexadecimal.

مثال
Main.java
                    import java.util.Scanner;   // Scanner هنا قمنا باستدعاء الكلاس

                    public class Main {

                    public static void main(String[] args) {

                    // Scanner هنا قمنا بإنشاء نص و الذي سندخله في كائن الـ
                    String s = "In Hexadecimal 'A' = A";

                    // s و أدخلنا فيه مباشرةً النص الموجود في المتغير ,input إسمه Scanner هنا قمنا بإنشاء كائن من الكلاس
                    Scanner input = new Scanner(s);

                    // input يساوي 16 لأي رقم موجود في الكائن radix هنا قمنا بوضع الـ
                    input.useRadix(16);

                    // يحتوي على أي كلمة, سيتم فحصها أولاً. input أي طالما أن الكائن ,true ترجع hasNext() هنا قلنا أنه طالما أن الدالة
                    while (input.hasNext())
                    {
                    // حتى نعرضها كرقم و بالتالي يتم تحويلها بشكل صحيح nextInt() سيتم عرضها بواسطة الدالة int إذا كانت من النوع
                    if (input.hasNextInt())
                    System.out.print(input.nextInt() + " ");

                    // next() إذا كانت أي شيء آخر لا يمثل رقم, سيتم عرضها كما هي بواسطة الدالة
                    else
                    System.out.print(input.next() + " ");
                    }

                    }

                    }
                  

سنحصل على النتيجة التالية عند التشغيل.

                    In Hexadecimal 'A' = 10
                  
__________&&&______;&&&___________;&&&&________; __________&&&______;&&&____نهاية; الدرس _______;&&&&________;