رحيق الزهور نشر 20 يونيو 2022 أرسل تقرير نشر 20 يونيو 2022 ماهي وظيفه هذه الداله داخل الكلاسA؟ واين هو الخطا؟ وكيف يمكن استدعائها داخل main؟ انا لم افهم بالضبط عملها وليس كتابتها!!! package F; import java.io.BufferedReader; import java.io.FileReader; public class Arr { public Arr(){ System.out.print("hi"); } public static [] load(String ) throws IOException{ FileReader f=new FileReader("/storage/emulated/0/JavaNIDE/B/app/src/main/java/F/arr.txt"); BufferedReader in=new BufferedReader(f); int n=0; String line=in.readLine(); while (line!=null){ n++; line=in.readLine(); } f.close(); String []v=new String[n]; f=new FileReader("/storage/emulated/0/JavaNIDE/B/app/src/main/java/F/arr.txt"); in=new BufferedReader(f); int i=0; line=in.readLine(); while ((line!=null)&&(i<n)){ v[i]=line; line=in.readLine(); i++; } f.close(); return v; } } 2 اقتباس
0 Wael Aljamal نشر 20 يونيو 2022 أرسل تقرير نشر 20 يونيو 2022 تقوم الدالة load بتحميل ملف نصي اسمه arr.txt من نفس المجلد الخاصة بالحزمة F. ثم تحب عدد سطوره وتخزن الناتج في n ثم تعيد قراءة الأسطر و تخزنها في مصفوفة سلالسل نصية V => Array Of String ثم تعيد هذه المصفوفة public class Arr { public Arr(){ System.out.print("hi"); } public static String[] load(String ) throws IOException{ // تحديد نمط إرجاع الدالة ^^^^^^^^^^^^^^^^ F.. } public static void main(String[] args) { String[] result = load(); // استدعاء الدالة // طباعة for (int i = 0; i < result.length; i++){ System.out.println(result[i]); } } } تحديد نوع إعادة الدالة لتصبح مصفوفة سلاسل نصية كتابة main للصنف و طباعة النتيجة فيه اقتباس
0 Haroun Taha نشر 20 يونيو 2022 أرسل تقرير نشر 20 يونيو 2022 (معدل) مرحباً , لديك class Arr وليس A يوجد به دالة ال load والخطأ لديك يكمن بتعريفها تابع الشرح لنحل المشكلة: سؤالك الاول : اقتباس ماهي وظيفه هذه الداله داخل الكلاسA؟ وظيفة الدالة: تكمن في تنظيم الكود وفصل كل عملية تريدها في البرنامج داخل دالة منفصلة لكي تفصل عمليات البرنامج كل دالة تعمل عملها على حدا. شرح الدالة : وظيفة الكود المكتوب داخل دالة ال load يقوم بقراءة ملف من المسار المعطى لل FileReader الذي هو arr.txt , FileReader f=new FileReader("/storage/emulated/0/JavaNIDE/B/app/src/main/java/F/arr.txt"); تم انشاء بعد ذلك object of BufferedReader واعطاء الملف لل BufferedReader لتمكين الجافا من عملية Iteration على الملف لحفظه بسلاسل: BufferedReader in=new BufferedReader(f); وبعد ذلك إخراجه في سلاسل نصية بواسطة انشاء object of string لكل سطر في الملف بواسطة هذا السطر: String line=in.readLine(); ومن ثم عمل حلقة تكرارية ليقرأ كل سطر بشرط كل سطر يحتوي على نص الى ان ينتهي الملف فينتج المتغير n فيه رقم عدد السطور التي تحتوي على نص في الملف انظر لذلك: while (line!=null){ n++; line=in.readLine(); } بعد ذلك تم انشاء مصفوفة من String سعتها بعدد السطور في الملف n: String []v=new String[n]; بعد ذلك تم تكرار نفس عملية القراءة من الملف ولكن هذه المرة تغير كود الحلقة التكرارية على السطور بالملف بأن يقوم الكود بإضافة كل سطر الى المصفوفة النصية التي سعتها بعدد السطور بالملف arr.txt انظر لذلك: while ((line!=null)&&(i<n)){ v[i]=line; line=in.readLine(); i++; } من ثم اغلق الملف بواسطة دالة close : f.close(); وتم ارجاع مصفوفة النصية التي تحتوي على السطور في الملف arr.txt: return v; سؤالك الثاني : اقتباس وكيف يمكن استدعائها داخل main؟ يتم استدعائها داخل ال main تابع الكود التالي وطباعة محتوياتها واضافة try and catch بسبب ان الدالة load ممكن ان تصدر IOException : // Main Method public static void main(String[] args) { try { String[] v = load(); // هنا تم الاستدعاء for (int i = 0; i < v.length; i++){ // طباعة المحتويات System.out.println(v[i]); } } catch(Exception e) { } } السؤال الأخير : اقتباس واين هو الخطا؟ الخطأ لديك بتعريف الدالة load ويجب تعريفها هكذا واستدعاء Class IOException: import java.io.IOException; // class IOException أضف هذا السطر لإستدعاء public static String[] load() throws IOException{ // String[] هنا حدث الكود الخاص بك بإتباع هذا التعريف للدالة يجب ان تحدد ماذا ترجع الدالة في حالتنا . . . return v; } ارجو ان تكون وضحت لك الية عمل الدالة load وكيفية استدعائها في دالة الmain تحياتي. تم التعديل في 20 يونيو 2022 بواسطة Haroun Taha اقتباس
السؤال
رحيق الزهور
ماهي وظيفه هذه الداله داخل الكلاسA؟
واين هو الخطا؟
وكيف يمكن استدعائها داخل main؟
انا لم افهم بالضبط عملها وليس كتابتها!!!
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.