WPA نشر 21 فبراير أرسل تقرير نشر 21 فبراير (معدل) السلام عليكم ورحمة الله وبركاته... مين يعرف كيف أكتب كود طبيعي في برنامج NetBeans بدون استخدام مكتبة ( java.util.Locale ) ؟ لأنه لو كتبت الكود بدون المكتبة ما أقدر أكتب رقم عشري بس أقدر أكتب رقم صحيح ( شوفوا الصور تحت وبتفهموا أكثر ) | بدون المكتبة | | مع المكتبة | تم التعديل في 21 فبراير بواسطة WPA 1 اقتباس
0 ياسر مسكين نشر 22 فبراير أرسل تقرير نشر 22 فبراير (معدل) الكود عندي يعمل سواء باستيراد المكتبة أو من دونها، فالمكتبة `java.util.Locale` فهذه المكتبة تستخدم بشكل رئيسي لإعدادات اللغة والمنطقة وتنسيق النصوص. فعند كتابة الرقم العشري في Java باستخدام `Scanner`، يمكننا استخدام `()nextDouble` لقراءة الأرقام العشرية من المدخل القياسي، وهذا لا يتأثر بأي استيراد لمكتبة `Locale`. وهذا ما نراه واضحا من خلال تشغيلي لكلا البرنامجين، إذ يظهر أنه يعمل بهذا الكود: import java.util.Scanner; public class Firstproject1 { public static void main(String[] args) { Scanner in = new Scanner (System.in); System.out.println("Enter Your Height: "); double Height = in.nextDouble(); System.out.println("Your height is: " +Height); } } أما بالنسبة لرسالة الخطأ التي ظهرت لك من نوع "java.util.InputMismatchException" فهي تحدث عندما يحاول المستخدم إدخال نوع بيانات لا يتوافق مع النوع المتوقع من قبل البرنامج. في هذه الحالة، الخطأ يحدث عندما تحاول قراءة الرقم العشري باستخدام `()nextDouble` ولكن الإدخال الذي تم إرفاقه قد لا يكون رقمًا عشريًا صالحًا، وربما يكون ذلك بسبب إدخال نصي بدلاً من رقم.لحل هذه المشكلة، يمكن التحقق من نوع الإدخال المدخل قبل قراءته. يمكن استخدام دالة `()hasNextDouble` للتحقق مما إذا كان الإدخال يمكن تحويله إلى رقم عشري أم لا. بهذا الشكل: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Enter Your Height: "); // التحقق مما إذا كان الإدخال يمكن تحويله إلى رقم عشري while (!in.hasNextDouble()) { System.out.println("Invalid input. Please enter a valid number."); in.next(); // تجاهل الإدخال غير الصالح وقراءة الإدخال التالي } double height = in.nextDouble(); System.out.println("Your height is: " + height); } } فهنا إذا كان الإدخال غير صالح (أي غير رقمي)، سيتم عرض رسالة خطأ وطلب إدخال صالح. أما بالنسبة لمثالك فالواضح أنك قمت بإدخال الرقم 5.5 وليس نصا أو رقما خاطئا، والسبب في ظهور المشكلة يكمن في أن السبب في ذلك هو استخدام الفارق في تنسيق الأرقام العشرية. ففي بعض البلدان، يتم استخدام الفارق أي النقطة "." كمحدد للأرقام العشرية، بينما في بلدان أخرى تستخدم "," كمحدد للأرقام العشرية.لحل هذه المشكلة، يمكننا تعيين المحدد الصحيح للأرقام العشرية باستخدام `Locale` بشكل صريح. على سبيل المثال، يمكنك تعيين `Locale.US` الذي يستخدم "." كمحدد للأرقام العشرية بدلاً من ",". بهذا الشكل: import java.util.Locale; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); in.useLocale(Locale.US); // تعيين المحدد الصحيح للأرقام العشرية System.out.println("Enter Your Height: "); // التحقق مما إذا كان الإدخال يمكن تحويله إلى رقم عشري while (!in.hasNextDouble()) { System.out.println("Invalid input. Please enter a valid number."); in.next(); // تجاهل الإدخال غير الصالح وقراءة الإدخال التالي } double height = in.nextDouble(); System.out.println("Your height is: " + height); } } فبتعيين `Locale.US`، يجب أن يتم قبول 5.5 كرقم عشري صالح دون وجود أخطاء. تم التعديل في 22 فبراير بواسطة ياسر مسكين اقتباس
0 WPA نشر 22 فبراير الكاتب أرسل تقرير نشر 22 فبراير طيب هل أقدر أعدّل في إعدادات الجهاز بحيث أستغني عن مكتبة `Locale.US` ؟ لأني جرّبت الكود في برنامج ثاني بدون المكتبة واشتغل معي، بس المشكلة في NetBeans، ومثل ما قلت أنت بسبب إعدادات الفارق في تنسيق الأرقام العشرية 1 اقتباس
0 ياسر مسكين نشر 22 فبراير أرسل تقرير نشر 22 فبراير بتاريخ 1 دقيقة مضت قال WPA: طيب هل أقدر أعدّل في إعدادات الجهاز بحيث أستغني عن مكتبة `Locale.US` ؟ لأني جرّبت الكود في برنامج ثاني بدون المكتبة واشتغل معي، بس المشكلة في NetBeans، ومثل ما قلت أنت بسبب إعدادات الفارق في تنسيق الأرقام العشرية نعم، يمكنك ضبط إعدادات اللغة والموقع (Locale settings) في جهازك لتكون متوافقة مع القيم التي تتوقعها من برنامجك دون الحاجة لاستخدام `Locale.US` في الكود. في نظام التشغيل Windows مثلا يمكنك فعل ذلك عن طريق اتباع الخطوات التالية: فتح "Control Panel" (لوحة التحكم) من قائمة "Start" (ابدأ). اختيار "Clock and Region" (الساعة والمنطقة). النقر على "Region" (المنطقة). الانتقال إلى علامة التبويب "Formats" (تنسيقات). اختيار اللغة والتنسيق المطلوب من قائمة "Format" (التنسيق). أخبرني في حال واجهتك أي مشكلة أخرى. اقتباس
0 ياسر مسكين نشر 22 فبراير أرسل تقرير نشر 22 فبراير بتاريخ 26 دقائق مضت قال WPA: يعطيك العافية وما قصرت، تعبتك معي لا شكر على واجب أخي، في الخدمة. 1 اقتباس
السؤال
WPA
السلام عليكم ورحمة الله وبركاته...
مين يعرف كيف أكتب كود طبيعي في برنامج NetBeans بدون استخدام مكتبة ( java.util.Locale ) ؟ لأنه لو كتبت الكود بدون المكتبة ما أقدر أكتب رقم عشري بس أقدر أكتب رقم صحيح
( شوفوا الصور تحت وبتفهموا أكثر )
| بدون المكتبة |
| مع المكتبة |
5 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.