English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

تعليمية Java الأساسية

تحكم Java في العملية

مجموعات Java (Arrays)

Java موجه الأشياء (I)

Java موجه الأشياء (II)

Java موجه الأشياء (III)

معالجة الاستثناءات Java

قوائم Java (List)

Java Queue (الطابور)

مجموعات Java Map

مجموعات Java Set

إدخال/إخراج Java (I/O)

قراءات/كتابة Java

موضوعات أخرى في Java

برنامج Java لتحقق من أن النص هو عدد

جميع الأمثلة على Java

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

مثال 1: التحقق من أن النص هو عدد

public class Numeric {
    public static void main(String[] args) {
        String string = "12345.15";
        boolean numeric = true;
        try {
            Double num = Double.parseDouble(string);
        } catch (NumberFormatException e) {
            numeric = false;
        }
        if(numeric)
            System.out.println(string + "  هو رقم");
        else
            System.out.println(string + "  ليس رقم");
    }
}

عند تشغيل البرنامج، الناتج يكون:

12345.15 هو عدد

في البرنامج أعلاه، لدينا نص string يحتوي على النص الذي نريد التحقق منه. ونحن أيضًا نملك قيمة بولية numeric تُخزن النتيجة النهائية إذا كانت قيمة.

للتحقق من أن النص يحتوي فقط على أرقام، نستخدم في try block طريقة parseDouble() من Double لتحويل النص إلى Double

إذا تم رمي الخطأ (أي خطأ NumberFormatException)، فإن ذلك يعني أن string ليس عددًا، ويتم تعيين numeric إلى false. وإلا، فإن ذلك يعني أنه عدد.

لكن، إذا كنت بحاجة إلى التحقق من عدة نصوص،则需要 تغييرها إلى دالة. وإذا كانت اللógica تعتمد على رمي الاستثناء، فإن ذلك قد يكون مكلفًا جدًا.

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

مثال 2: استخدام تعبيرات النصية (regex) للتحقق من أن النص هو عدد

public class Numeric {
    public static void main(String[] args) {
        String string = "-1234.15";
        boolean numeric = true;
        numeric = string.matches("-?\\d+(\\.\\d+)?");
        if(numeric)
            System.out.println(string + "  هو رقم");
        else
            System.out.println(string + "  ليس رقم");
    }
}

عند تشغيل البرنامج، الناتج يكون:

-1234.15 هو رقم

في البرنامج أعلاه، نستخدم regex للتحقق من أن النص هو رقم بدلاً من استخدام مكتبة try-catch. هذا يتم باستخدام دالة matches() من String.

في دالة matches()

  • -?     يسمح بوجود صفر أو أكثر من '-' لرقم سالب في النص

  • \\d+ التحقق من أن النص يحتوي على عدد واحد أو أكثر من الأرقام (\\d)

  • (\\.\\d+)? يسمح بوجود صفر أو أكثر من النمط المحدد (\\.\\d+)

    • \\. التحقق من أن النص يحتوي على. (نقطة عشرية)

    • إذاً، يجب أن يكون هناك على الأقل رقم واحد أو أكثر \\d+.

جميع الأمثلة على Java