تحليل الأرقام من الإدخال
حوّل النص إلى أرقام
تحليل الأرقام من الإدخال درس مجاني في Java Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Java Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Java Academy 4 دروس في المجموع.
الأسطر دائمًا سلاسل نصية
تعيد readLine() دائمًا قيمة من نوع String، حتى عندما يكتب المستخدم 42. ولإجراء العمليات الحسابية، يجب أن تحلل ذلك النص وتحوله إلى رقم.
توفر Java طرقًا مساعدة مثل Integer.parseInt وDouble.parseDouble لهذا الغرض تحديدًا.
Integer.parseInt
تحوّل Integer.parseInt(String) نصًا مثل "42" إلى قيمة int تساوي 42.
بعد تحليله، يمكنك جمعه أو ضربه أو مقارنته مثل أي رقم.
String text = "42";
int n = Integer.parseInt(text);
System.out.println(n + 1);مثال قابل للتشغيل على التحليل
إليك برنامجًا كاملًا قابلًا للتشغيل يحلل سلسلة نصية ثابتة ويضاعف قيمتها.
لا يقرأ البرنامج من System.in، لذلك يعمل فورًا ويطبع النتيجة.
public class Main {
public static void main(String[] args) {
String text = "21";
int n = Integer.parseInt(text);
System.out.println("Doubled: " + (n * 2));
}
}القراءة ثم التحليل
النمط الفعلي هو: اقرأ سطرًا ثم حلّله. يقرأ هذا البرنامج رقمًا واحدًا من وحدة التحكم ويطبع مربعه.
ولأنه ينتظر عند System.in، لا يمكن تشغيله تلقائيًا هنا، لكنه النمط المستخدم يوميًا.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
System.out.println("Square: " + (n * n));
}
}أزل المسافات قبل التحليل
تؤدي المسافات الزائدة إلى فشل التحليل. يرمي Integer.parseInt(" 42 ") خطأً، لكن Integer.parseInt(" 42 ".trim()) يعمل.
من العادات الجيدة استدعاء trim() على السطر قبل تحليله.
String raw = " 7 ";
int n = Integer.parseInt(raw.trim());
System.out.println(n);تحليل الأعداد العشرية
للأعداد العشرية، استخدم Double.parseDouble. فهي تحوّل نصًا مثل "3.14" إلى قيمة من النوع double.
توجد أيضًا Long.parseLong للأعداد الصحيحة الكبيرة جدًا التي تتجاوز نطاق int.
public class Main {
public static void main(String[] args) {
double pi = Double.parseDouble("3.14");
System.out.println(pi * 2);
}
}عدة أرقام في سطر واحد
غالبًا ما يحتوي السطر على عدة أرقام تفصل بينها مسافات، مثل "10 20 30". استخدم split(" ") لتقسيمه إلى مصفوفة من رموز String.
ثم حلّل كل رمز على حدة.
String[] parts = "10 20 30".split(" ");
int a = Integer.parseInt(parts[0]);
int b = Integer.parseInt(parts[1]);
System.out.println(a + b);جمع الأرقام المقسمة
يقسم هذا البرنامج القابل للتشغيل سطرًا ويجمع كل الأرقام في حلقة.
السلسلة النصية مضمّنة مباشرة لكي يعمل البرنامج من دون إدخال، لكن استبدلها بـ br.readLine() عند استخدام وحدة التحكم فعليًا.
public class Main {
public static void main(String[] args) {
String line = "5 8 2 10";
String[] parts = line.split(" ");
int sum = 0;
for (String p : parts) {
sum += Integer.parseInt(p);
}
System.out.println("Sum: " + sum);
}
}الإدخال غير الصالح يسبب استثناءً
إذا لم يكن النص رقمًا صالحًا — مثل "hello" أو سلسلة فارغة — فإن parseInt يرمي الاستثناء NumberFormatException.
يمكنك الوقاية من ذلك باستخدام try/catch حتى لا يتعطل برنامجك بسبب إدخال غير صالح.
try {
int n = Integer.parseInt("hello");
} catch (NumberFormatException e) {
System.out.println("Not a number!");
}التحليل الآمن عمليًا
إليك برنامجًا قابلًا للتشغيل يعالج الإدخال غير الصالح بسلاسة بدلًا من التعطل.
تطبع كتلة catch رسالة واضحة عندما يتعذر تحويل النص إلى رقم.
public class Main {
public static void main(String[] args) {
String input = "12x";
try {
int n = Integer.parseInt(input);
System.out.println(n);
} catch (NumberFormatException e) {
System.out.println("Invalid number: " + input);
}
}
}قائمة التحقق من التحليل
عند تحويل الإدخال إلى أرقام:
- استخدم
Integer.parseIntللأعداد الصحيحة، وDouble.parseDoubleللأعداد العشرية. - أزل المسافات الزائدة أولًا باستخدام
trim(). - استخدم
split(" ")عند وجود عدة أرقام في السطر. - ضع العملية داخل
try/catchلمزيد من الأمان.
تحقّق سريع
فكّر فيما يحدث عند فشل التحليل.
مراجعة
تعلّمت أن أسطر الإدخال عبارة عن سلاسل نصية، ويتم تحليلها باستخدام Integer.parseInt أو Double.parseDouble. استخدمت trim() وsplit(" ")، وتعاملت مع NumberFormatException لتجنّب المشكلات.
التالي: إغلاق التدفقات بالطريقة الصحيحة.
الأسئلة الشائعة
هل درس «تحليل الأرقام من الإدخال» مجاني؟
نعم — نص درس «تحليل الأرقام من الإدخال» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Java Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Java Academy 4 دروس في المجموع.
ماذا ستتعلم في «تحليل الأرقام من الإدخال»؟
حوّل النص إلى أرقام تتمرن على Java Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟
لا تُشترط خبرة سابقة. Java Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «تحليل الأرقام من الإدخال»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Java Academy هذا؟
نعم. كل درس في Java Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- لماذا نستخدم BufferedReader
- قراءة الأسطر
- تحليل الأرقام من الإدخال
- إغلاق التدفقات بأمان