عادة في واجهة المستخدم الرسومية، ستكون هناك حقول نصية تتوقع من المستخدم إدخالها في قيمة عددية. هذه القيمة العددية ستنتهي في a خيط الكائن الذي لا يساعد برنامجك حقًا إذا كنت تريد إجراء بعض العمليات الحسابية. لحسن الحظ ، هناك فئات مجمّعة توفر طرقًا لتحويل قيم السلسلة هذه إلى أرقام ولدى فئة السلسلة طريقة لتحويلها مرة أخرى.
فئات الغلاف
ال أنواع البيانات البدائية التي تتعامل مع الأرقام (أي ، البايت ، int ، المزدوج ، العائم ، الطويل والقصير) جميعها لها مكافئات للفئة. تُعرف هذه الفئات بالفئات المجمّعة لأنها تأخذ نوع بيانات بدائية وتحيط بها بوظيفة الفئة. على سبيل المثال ، سيكون للفئة المزدوجة قيمة مزدوجة كبياناتها وتوفر طرقًا لمعالجة هذه القيمة.
كل هذه الفئات المجمّعة لها طريقة تسمى valueOf. تأخذ هذه الطريقة سلسلة كوسيطة وتقوم بإرجاع مثيل لفئة المجمع. على سبيل المثال ، لنفترض أن لدينا سلسلة بقيمة عشرة:
رقم السلسلة = "10" ؛
لا يعد استخدام هذا الرقم كسلاسل نصية بالنسبة لنا ، لذلك نستخدم فئة Integer لتحويله إلى كائن Integer:
Integer convertNumber = Integer.valueOf (number) ،
الآن يمكن استخدام الرقم كرقم وليس سلسلة:
محول رقم = محول رقم + 20 ؛
يمكنك أيضًا تحويل التحويل مباشرة إلى نوع بيانات بدائي:
int convertNumber = Integer.valueOf (number) .intValue () ؛
بالنسبة لأنواع البيانات البدائية الأخرى ، ما عليك سوى إدخال فتحة في فئة الغلاف الصحيحة - Byte و Integer و Double و Float و Long Short.
ملحوظة: يجب أن تتأكد من إمكانية تحليل السلسلة إلى نوع البيانات المناسب. إذا لم تستطع ، فسوف ينتهي بك الأمر مع خطأ وقت التشغيل. على سبيل المثال ، محاولة إخفاء "عشرة" في عدد صحيح:
رقم السلسلة = "ten" ؛
int convertNumber = Integer.valueOf (number) .intValue () ؛
سينتج NumberFormatException لأن المترجم ليس لديه فكرة "عشرة" من المفترض أن تكون 10.
بمزيد من الدقة ، سيحدث نفس الخطأ إذا نسيت أن 'int' يمكن أن تحتوي فقط على الأعداد الصحيحة:
رقم السلسلة = "10.5" ؛
int convertNumber = Integer.valueOf (number) .intValue () ؛
لن يقوم المترجم باقتطاع الرقم وسيعتقد فقط أنه لا يتناسب مع 'int' وأنه حان الوقت لرمي NumberFormatException.
تحويل الأرقام إلى سلاسل
لتحويل رقم إلى سلسلة يتبع نفس النمط من النمط الذي يحتوي على فئة String له أسلوب valueOf أيضًا. يمكن أن يأخذ أيًا من أرقام نوع البيانات البدائية كوسيطة وينتج سلسلة:
العدد الدولي العشرون = 20 ؛
تم تحويل السلسلة = String.valueOf (numberTwenty) ؛
مما يضع "20" كقيمة سلسلة لـ nverted.
أو يمكنك استخدام طريقة toString لأي من فئات الغلاف:
تم تحويل السلسلة = Integer.toString (numberTwenty)؛
تعتبر طريقة toString شائعة في جميع أنواع الكائنات - في معظم الأحيان تكون مجرد وصف للكائن. بالنسبة للفئات المجمّعة ، هذا الوصف هو القيمة الفعلية التي تحتوي عليها. في هذا الاتجاه ، يكون التحويل أقوى قليلاً. إذا كان سيتم استخدام الفئة المزدوجة بدلاً من العدد الصحيح:
تم تحويل السلسلة = Double.toString (numberTwenty)؛
النتيجة لن تسبب أ خطا وقت التشغيل. سيحتوي المتغير المحول على السلسلة "20.0".
هناك أيضًا طريقة أكثر دقة لتحويل الأرقام عندما تكون سلاسل متسلسلة. إذا كان سيتم بناء سلسلة مثل:
String aboutDog = "كلبي" + numberTwenty + "years old."؛
يتم تحويل عدد intTwenty تلقائيًا.