البرمجة

تحقق من صحة الأرقام في سلسلة Java: الاستخدام الفعّال لتعبيرات الاستطابة وأساليب السلسلة

عندما يتعلق الأمر بالتحقق من صحة سلسلة نصية في Java والتحقق مما إذا كانت جزءًا معينًا منها يحتوي على قيمة رقمية، يمكنك الاعتماد على تعبيرات الاستطابة (Regex) أو استخدام طرق السلسلة (String methods) المدمجة في اللغة. دعني أقدم لك شرحًا وافيًا للطريقتين.

أولاً، يمكنك استخدام تعبيرات الاستطابة لتحديد النطاق المراد والتحقق مما إذا كان يحتوي على أرقام. في حالتك، يمكنك استخدام التالي:

java
String inputString = "AA2016MY"; String pattern = "^[A-Z]{2}(\\d{4})[A-Z]{2}$"; boolean isMatch = inputString.matches(pattern); if (isMatch) { // السلسلة صحيحة والأرقام في الموضع من 3 إلى 6 System.out.println("السلسلة صحيحة والأرقام في الموضع من 3 إلى 6."); } else { // السلسلة غير صحيحة أو الأرقام غير متواجدة في الموضع المحدد System.out.println("السلسلة غير صحيحة أو الأرقام غير متواجدة في الموضع المحدد."); }

في هذا المثال، يتم استخدام التعبير العادي “^[A-Z]{2}(\d{4})[A-Z]{2}$” للتحقق من أن السلسلة تتكون من حرفين كبيرين في البداية والنهاية، تليها أربعة أرقام في المنتصف.

ثانيًا، يمكنك استخدام طرق السلسلة المدمجة في Java للقيام بنفس الغرض. في هذه الحالة، يمكنك استخدام substring لاستخراج الجزء المراد من السلسلة ومن ثم استخدام matches للتحقق من أنه يحتوي على أرقام. اليك مثال على ذلك:

java
String inputString = "AA2016MY"; String numericPart = inputString.substring(2, 6); try { int numericValue = Integer.parseInt(numericPart); // التحقق من أن القيمة رقمية System.out.println("القيمة الرقمية في الموضع من 3 إلى 6: " + numericValue); } catch (NumberFormatException e) { // في حالة عدم وجود قيمة رقمية في الموضع المحدد System.out.println("القيمة في الموضع من 3 إلى 6 غير صحيحة."); }

في هذا المثال، يتم استخدام substring(2, 6) لاستخراج الجزء من الموضع 3 إلى الموضع 6، ومن ثم يتم محاولة تحويله إلى int. إذا نجحت هذه الخطوة دون إلقاء استثناء، فإن القيمة في الموضع المحدد هي رقمية.

باختصار، يمكنك اختيار أي من الطريقتين وفقًا لاحتياجاتك وتفضيلاتك.

المزيد من المعلومات

بالطبع، دعني أضيف المزيد من المعلومات لتوسيع فهمك حول كيفية التحقق من صحة سلسلة النص في Java والتحقق من وجود قيم رقمية في جزء معين منها.

تفسير تعبيرات الاستطابة (Regex):

في التعبير الذي استخدمناه “^([A-Z]{2})(\d{4})([A-Z]{2})$”, نجد أن:

  • “^”: يرمز إلى بداية السلسلة.
  • “([A-Z]{2})”: تعني اثنين من الأحرف الكبيرة.
  • “(\d{4})”: تعني أربعة أرقام.
  • “([A-Z]{2})”: تعني اثنين من الأحرف الكبيرة.
  • “$”: يرمز إلى نهاية السلسلة.

باستخدام هذا التعبير، يمكننا ضمان أن السلسلة تبدأ وتنتهي بحرفين كبيرين، وأن في الوسط يجب أن يكون هناك أربعة أرقام.

استخدام substring وparseInt:

في الطريقة الثانية، باستخدام substring، يتم استخدام inputString.substring(2, 6) لاستخراج الجزء المراد من السلسلة. ثم يتم استخدام Integer.parseInt() لتحويل هذا الجزء إلى رقم صحيح.

التعامل مع استثناء NumberFormatException:

في حالة استخدام parseInt، يجب أن تتعامل مع استثناء NumberFormatException، والذي يطلق عندما يكون الجزء المستخرج غير قابل للتحويل إلى رقم صحيح، مما يشير إلى أن القيمة في الموضع المحدد غير رقمية.

توسيع على الاستخدام العام:

تتيح لك هذه الأساليب التحقق من العديد من الظروف المعينة في السلاسل النصية، مثل الأحرف المستخدمة والأماكن التي تحتوي على القيم الرقمية. يمكنك تعديل التعبير الاستطابي لتحقق من شروط مختلفة حسب احتياجاتك.

بهذا، يُظهر لنا الاستفادة من ميزات Java في التعبيرات الاستطابية وطرق السلسلة المدمجة لتحقيق فعالية ودقة في التحقق من صحة السلاسل النصية. يُشجع على استخدام الطريقة التي تتناسب أكثر مع متطلبات وسياق تطبيقك.

زر الذهاب إلى الأعلى