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