Javaالدالة next()
الموجودة في الكلاس Scanner
في جافا
تعريفها
ترجع الكلمة التالية التي تم إدخالها في كائن الـ Scanner
.
بناؤها
public String next()
باراميترات
ليس لها باراميتر.
قيمة الإرجاع
ترجع الكلمة التالية التي تم إدخالها في كائن الـ Scanner
.
أخطاء محتملة
- IllegalStateException: في حال كان كائن الـ
Scanner
مغلقاً. - NoSuchElementException: في حال قمت باستدعائها بعد أن تم إرجاع جميع الكلمات الموجودة في كائن الـ
Scanner
.
في المثال التالي أدخلنا سطر من البيانات في كونستركتور كائن الـ Scanner
.
بعدها قمنا بإنشاء حلقة while
تمر على كل كلمة موجودة في كائن الـ Scanner
ثم تعرضها بواسطة الدالة next()
.
ستستمر هذه الحلقة في تكرار نفسها طالما أن الدالة hasNext()
ترجع true
.
المثال الأول
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
في المثال التالي سيطلب البرنامج من المستخدم إدخال إسمه و إسم عائلته, بعدها سيقوم بعرض المعلومات التي قام بإدخلها.
المثال الثاني
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 last name: Harmush
----------- User Info ------------
First Name: Mhamad
Last Name: Harmush
هنا إفترضنا أن إسم المستخدم و إسم عائلته يتألف من كلمة واحدة فقط, فمثلاً إذا قام المستخدم بإدخال إسم مركب مثل Mohamad Ali
.
لن يتم تخزينه بشكل صحيح لأن الدالة next()
تخزن كلمة واحدة عندما تقوم باستدعائها, أي إذا قمت بإدخال أكثر من كلمة ثم نقرت على زر Enter سيتم تخزين الكلمة الأولى فقط, أي سيتم تخزين الكلمة Mohamad
فقط.