المستوى التقريبي للمعرفة المطلوبة: مهمة Java Syntax والقليل من Java Core.
في نهاية مهمة JavaRush الأولى، نتعرف على تحويل النوع. في محاضرات المستوى 10، يمكنك أن ترى أن التحويل int
إلى String
أمر بسيط للغاية، وبشكل عام، يمكن تحويل أي نوع بدائي تقريبًا String
دون مشاكل.
int x = 5;
String text = "X=" + x;
أيضًا، أولئك الذين أكملوا بالفعل المستوى 10 من مهمة Java Syntax يعرفون أنه من المستحيل تحويل مرجع إلى رقم إلى مرجع إلى سلسلة. إذن ما هي أفضل طريقة لتحويل سلسلة إلى عدد صحيح بدائي؟ من الأفضل القيام بذلك باستخدام طريقة parseInt
الفصل Integer
. يجب أن تقوم الطريقة parseInt
بالتحويل String
إلى int
وطرح استثناء NumberFormatException
إذا تعذر تحويل السلسلة إلى كتابة int
.
مثال
السطر الأساسي الذي يحول السلسلة إلى عدد صحيح:
int i = Integer.parseInt (myString);
إذا كانت السلسلة التي يشير إليها المتغير myString
عددًا صحيحًا صالحًا، مثل "1" أو "200"، فستقوم Java بتحويلها بهدوء إلى نوع بيانات بدائي int
. إذا فشل هذا لسبب ما، فقد يؤدي هذا الإجراء إلى حدوث استثناء NumberFormatException
، لذا لكي يعمل البرنامج بشكل صحيح لأي سلسلة، نحتاج إلى المزيد من التعليمات البرمجية. برنامج يوضح طريقة التحويل Java String
الى int
, التحكم بامكانية NumberFormatException
:
public class JavaStringToIntExample
{
public static void main (String[] args)
{
String s = "100";
try
{
int i = Integer.parseInt(s.trim());
System.out.println("int i = " + i);
}
catch (NumberFormatException nfe)
{
System.out.println("NumberFormatException: " + nfe.getMessage());
}
}
مناقشة
عندما تدرس المثال أعلاه، سترى أن الطريقة Integer.parseInt (s.trim ())
تُستخدم لتحويل سلسلة s
إلى عدد صحيح i
، ويحدث هذا في السطر التالي من التعليمات البرمجية:
int i = Integer.parseInt (s.trim ())
لكن في بعض الأحيان لن ينجح تحويل سلسلة إلى رقم. في مثالنا، مثل هذه السلسلة هي الاسم فريد. يمكننا التحدث عن الرموز التي يتم فيها كتابة الحروف على جهاز كمبيوتر، ولكن، من الناحية الرسمية، فريد ليس رقما، ومن الأفضل تركه كسلسلة. تم تصميم برنامجنا بحيث إذا حاولت تحويل "fred" إلى رقم، فإن العملية Integer parseInt
ستطرح استثناءً NumberFormatException
، والذي يجب عليك التعامل معه في كتلة try / catch
. في هذه الحالة ليس عليك استخدام طريقة trim ()
الفصل String
، ولكن في البرمجة الحقيقية يجب عليك استخدامها. لذلك أظهرناها لك. نظرًا لطرح هذا الموضوع، إليك بعض "التلميحات" حول موضوع الفصول الدراسية String
و Integer
:
Integer.toString (int i)
تستخدم للتحويل int
إلى سلاسل جافا.
- إذا كنت تريد تحويل كائن
String
إلى كائن Integer
(بدلاً من فئة بدائية int
)، فاستخدم التابع valueOf ()
on-class Integer
بدلاً من التابع parseInt ()
.
- إذا كنت بحاجة إلى تحويل السلاسل إلى حقول Java بدائية إضافية، فاستخدم طرقًا مثل هذه
Long.parseLong ()
.
الإجابة بواسطة: أليس واتسون
GO TO FULL VERSION