"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يعمل Scanner.useDelimiter() الخاص بـ Java مع التعبيرات العادية؟

كيف يعمل Scanner.useDelimiter() الخاص بـ Java مع التعبيرات العادية؟

تم النشر بتاريخ 2024-12-25
تصفح:750

How Does Java\'s Scanner.useDelimiter() Work with Regular Expressions?

فهم المحددات باستخدام Scanner.useDelimiter في Java

توفر فئة Scanner في Java طريقة useDelimiter، مما يسمح لك بتحديد محدد (حرف أو نمط) يفصل بين الرموز. ومع ذلك، فإن استخدام المحددات يمكن أن يكون مربكًا للمبتدئين. دعنا نقسمها بعبارات أبسط.

فكر في المقتطف:

sc = new Scanner(new File(dataFile));
sc.useDelimiter(",|\r\n");

في هذا المثال، يتم تعريف المحدد على أنه مزيج من الفاصلة ("،" وحرف إرجاع متبوعًا بسطر جديد ("\ ص\ن"). سوف يستخدم الماسح الضوئي هذا المحدد لفصل الرموز المميزة في ملف البيانات.

فهم التعبيرات العادية

المحدد الذي تحدده في useDelimiter هو تعبير عادي. التعبيرات العادية هي أنماط تستخدم لمطابقة الأحرف أو التسلسلات. يحدد المحدد ",|\r\n" أن الرمز المميز إما ينتهي بفاصلة أو حرف إرجاع متبوعًا بسطر جديد.

مثال

لنأخذ مثالاً:

String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());   // prints: 1
System.out.println(s.nextInt());   // prints: 2
System.out.println(s.next());      // prints: red
System.out.println(s.next());      // prints: blue
s.close();

في هذا المثال، المحدد هو "\sfish\s." يشير \\s* إلى إمكانية وجود أي عدد من المسافات البيضاء (بما في ذلك الصفر) قبل كلمة "fish" أو بعدها. وهذا يعني أن الماسح الضوئي سوف يطابق ويستخرج الرموز المميزة مثل "1 سمكة" و"2 سمكة" وما إلى ذلك.

الاستنتاج

تذكر أنه عند استخدام useDelimiter في Java، من المهم فهم الأمور العادية التعبيرات. يمكنك العثور على برامج تعليمية مفصلة عبر الإنترنت لتعزيز معرفتك بأنماط التعبير العادي. من خلال الفهم الصحيح للمحددات والتعبيرات العادية، يمكنك تحليل البيانات واستخراجها من الملفات النصية بكفاءة باستخدام فئة Scanner.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3