Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

Javaالدالة next() الموجودة في الكلاس Scanner في جافا

تعريفها

ترجع الكلمة التالية التي تم إدخالها في كائن الـ 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: Mhamad
Enter your last name: Harmush

----------- User Info ------------
First Name: Mhamad
Last Name: Harmush

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