Javaالدالة findWithinHorizon() الموجودة في الكلاس Scanner في جافا
تعريفها
تبحث في الـ 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.
المثال الأول
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.
المثال الثاني
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 أحرف فقط, و بالتالي تعمدنا عدم إيجاد تطابق.
المثال الثالث
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