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

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.

المثال الأول

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