0Pricing
Java Academy · درس

Parsing وValueof

حوّلوا السلاسل إلى أعداد

Parsing وValueof درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 4 دروس في المجموع.

تحويل النص إلى أعداد

يصل إدخال المستخدم والملفات في صورة نص من نوع String. ولإجراء العمليات الحسابية، يجب تحويل هذه السلاسل النصية إلى أعداد.

توفّر الأصناف المغلِّفة عائلتين من الأساليب لهذا الغرض: يعيد parseXxx نوعًا بدائيًا، بينما يعيد valueOf كائنًا من صنف مغلِّف.

يعيد parseInt نوعًا بدائيًا

يستقبل Integer.parseInt سلسلة نصية ويعيد قيمة int عادية. وهذه أكثر أساليب التحليل شيوعًا.

public class Main {
    public static void main(String[] args) {
        int n = Integer.parseInt("123");
        System.out.println(n + 1);
    }
}

يعيد valueOf صنفًا مغلِّفًا

يستقبل Integer.valueOf سلسلة نصية ويعيد كائنًا من نوع Integer بدلًا من نوع بدائي. ويكون مفيدًا عندما تحتاج مباشرةً إلى صنف مغلِّف، مثلًا لوضعه في مجموعة.

public class Main {
    public static void main(String[] args) {
        Integer boxed = Integer.valueOf("456");
        System.out.println(boxed);
    }
}

تحليل الأعداد العشرية

استخدم Double.parseDouble لتحليل النصوص التي تمثل أعدادًا بفاصلة عائمة. فهو يتعامل مع القيم التي تحتوي على فواصل عشرية، بل ومع الصيغة العلمية أيضًا.

public class Main {
    public static void main(String[] args) {
        double price = Double.parseDouble("19.99");
        System.out.println(price * 2);
    }
}

تحليل الأنواع الأخرى

يمتلك كل صنف مغلِّف عددي أسلوب تحليل: Long.parseLong وDouble.parseDouble وFloat.parseFloat وShort.parseShort وByte.parseByte.

public class Main {
    public static void main(String[] args) {
        long big = Long.parseLong("9000000000");
        System.out.println(big);
    }
}

تحليل القيم المنطقية

يعيد Boolean.parseBoolean القيمة true فقط عندما يساوي النص "true" مع تجاهل حالة الأحرف. وتعيد كل سلسلة نصية أخرى، بما في ذلك null، القيمة false.

public class Main {
    public static void main(String[] args) {
        System.out.println(Boolean.parseBoolean("true"));
        System.out.println(Boolean.parseBoolean("TRUE"));
        System.out.println(Boolean.parseBoolean("yes"));
    }
}

التحليل بأساسات مختلفة

يقبل Integer.parseInt وسيطة اختيارية تُسمى radix. فتمرير القيمة 2 يقرأ عددًا ثنائيًا، وتمرير القيمة 16 يقرأ عددًا سداسيًا عشريًا.

public class Main {
    public static void main(String[] args) {
        int binary = Integer.parseInt("1010", 2);
        int hex = Integer.parseInt("ff", 16);
        System.out.println(binary);
        System.out.println(hex);
    }
}

الإدخال غير الصحيح يسبب استثناءً

إذا لم تكن السلسلة النصية عددًا صالحًا، فإن التحليل يطرح الاستثناء NumberFormatException. وينبغي وضع عمليات التحليل التي قد تفشل داخل كتلة try-catch.

public class Main {
    public static void main(String[] args) {
        try {
            int n = Integer.parseInt("hello");
            System.out.println(n);
        } catch (NumberFormatException e) {
            System.out.println("Not a number!");
        }
    }
}

انتبه إلى المسافات البيضاء

لا يتسامح التحليل مع المسافات المحيطة. إذ يطرح Integer.parseInt(" 5 ") استثناءً.

استدعِ دائمًا trim() أو strip() على إدخال المستخدم أولًا.

public class Main {
    public static void main(String[] args) {
        String raw = "  42  ";
        int n = Integer.parseInt(raw.trim());
        System.out.println(n);
    }
}

إعادة الأعداد إلى نصوص

للتحويل في الاتجاه المعاكس، استخدم String.valueOf أو Integer.toString. فكلاهما يحوّل العدد إلى شكله النصي.

public class Main {
    public static void main(String[] args) {
        String text = Integer.toString(789);
        String text2 = String.valueOf(3.14);
        System.out.println(text.length());
        System.out.println(text2);
    }
}

parseXxx في مقابل valueOf

تذكّر القاعدة: يعيد parseInt نوعًا بدائيًا هو int، بينما يعيد valueOf كائنًا من نوع Integer. اختر بينهما بناءً على حاجتك إلى نوع بدائي أو صنف مغلِّف.

تحقق سريع

اختبر ما تعلمته عن تحليل القيم.

خلاصة

لقد تعلمت كيفية التحويل بين السلاسل النصية والأعداد:

  • تعيد parseInt وparseDouble والأساليب المشابهة أنواعًا بدائية
  • يعيد valueOf كائنات من الأصناف المغلِّفة
  • يؤدي الإدخال غير الصحيح إلى طرح NumberFormatException، لذا أزل المسافات والتقط الاستثناء
  • يمكن لـ parseInt قراءة أساسات أخرى باستخدام وسيطة radix
  • استخدم toString أو String.valueOf للعودة إلى النص

الأسئلة الشائعة

هل درس «Parsing وValueof» مجاني؟

نعم — نص درس «Parsing وValueof» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 4 دروس في المجموع.

ماذا ستتعلم في «Parsing وValueof»؟

حوّلوا السلاسل إلى أعداد تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟

لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.

كم من الوقت يستغرق درس «Parsing وValueof»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟

نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الأنواع البدائية مقابل أنواع Wrapper
  2. Autoboxing وUnboxing
  3. Parsing وValueof
  4. مخاطر Autoboxing
← العودة إلى Java Academy