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

Javaالدالة start() و الدالة end() في جافا

تعريفهم

start(): ترجع رقم الـ index للحرف الذي بدأ التطابق من عنده.

end(): ترجع رقم الـ index للحرف الذي إنتهى التطابق عنده.



بناؤهم

public int start()
public int end()
public int start() public int end()


أخطاء محتملة

  • IllegalStateException: في حال تم إستدعاء أي واحدة منهما و لم يكن هناك أي تطابق من الأساس.


مثال

Main.java
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
String REGEX = "java"; // REGEX: هو النص الذي سنبحث عنه
String INPUT = "java language, java is free, java is amazing"; // INPUT: هو النص الذي سنبحث فيه
Pattern p = Pattern.compile(REGEX); // Pattern ثم قمنا بتخزينه في كائن نوعه compile() باستخدام الدالة Pattern إلى REGEX قمنا بتحويل الـ
Matcher m = p.matcher(INPUT); // Matcher ثم قمنا بتخزينه في كائن نوعه INPUT على النص matcher() قمنا باستدعاء الدالة
int count = 0; // سنستخدم هذا المتغير لتخزين عدد المرات التي تم فيها إيجاد تطابق
while ( m.find() ) // سيبحث عن التطابق التالي INPUT موجود في الـ Pattern هنا طالما أن الـ
{
count++; // واحد في كل مرة يتم فيها إيجاد تطابق count هنا قمنا بزيادة الـ
System.out.println( "start(): " + m.start() ); // هنا قمنا بطباعة أي بدأ التطابق
System.out.println( "end(): " + m.end() ); // هنا قمنا بطباعة أي إنتهى التطابق
System.out.println();
}
System.out.println( "Match number: " +count ); // هنا قمنا بطباعة عدد المرات التي تم فيها إيجاد تطابق
}
}
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String REGEX = "java"; // REGEX: هو النص الذي سنبحث عنه String INPUT = "java language, java is free, java is amazing"; // INPUT: هو النص الذي سنبحث فيه Pattern p = Pattern.compile(REGEX); // Pattern ثم قمنا بتخزينه في كائن نوعه compile() باستخدام الدالة Pattern إلى REGEX قمنا بتحويل الـ Matcher m = p.matcher(INPUT); // Matcher ثم قمنا بتخزينه في كائن نوعه INPUT على النص matcher() قمنا باستدعاء الدالة int count = 0; // سنستخدم هذا المتغير لتخزين عدد المرات التي تم فيها إيجاد تطابق while ( m.find() ) // سيبحث عن التطابق التالي INPUT موجود في الـ Pattern هنا طالما أن الـ { count++; // واحد في كل مرة يتم فيها إيجاد تطابق count هنا قمنا بزيادة الـ System.out.println( "start(): " + m.start() ); // هنا قمنا بطباعة أي بدأ التطابق System.out.println( "end(): " + m.end() ); // هنا قمنا بطباعة أي إنتهى التطابق System.out.println(); } System.out.println( "Match number: " +count ); // هنا قمنا بطباعة عدد المرات التي تم فيها إيجاد تطابق } }

سنحصل على النتيجة التالية عند التشغيل.

start(): 0
end(): 4
start(): 15
end(): 19
start(): 29
end(): 33
Match number: 3
start(): 0 end(): 4 start(): 15 end(): 19 start(): 29 end(): 33 Match number: 3

هنا أنت مجبر أن تستخدم الدالة find() لأنك تريد معرفة جميع الأماكن التي ظهر فيها تطابق.
لو إستخدمت الدالة lookingAt() بدلاً من الدالة find() لكان البرنامج سيستمر في التنفيذ إلى أن توقفه بنفسك, و كان سيظهر لك فقط أول مكان تم فيه إيجاد تطابق.


ملاحظة: في المثال السابق كان بإمكاننا تعريف المتغير REGEX بهذه الطريقة:

String REGEX = "//bjava";
String REGEX = "//bjava";

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة