يا ريت يا شباب ال Assignment اللي محطوط مع الكلاس الاولاني نتناقش فيه
لاني انا مرتب ان الفترة بين كل كلاس و اللي بعده تكون مناقشه في الكلاس و في ال Assignment
السلام عليكم ورحمة الله
بجد الشرح حلو جدا وان شاء الله هبدا استب البرامج عشان احاول اتابع معاكم عملى ... وربنا يكرمك ويوفقك يارب
يا ريت يا شباب ال Assignment اللي محطوط مع الكلاس الاولاني نتناقش فيه
لاني انا مرتب ان الفترة بين كل كلاس و اللي بعده تكون مناقشه في الكلاس و في ال Assignment
السلام عليكم ورحمة الله وبركاته
الف شكر يا باشمهندس وربنا يجعله في ميزان حسناتك
وانت فعلا والا زيك مثال مشرف للتعاون لنشر العلم
السلام عليكم ورحمة الله وبركاته
لو سمحت يا بشمهندس انا كان عندي سؤال بسيط
هو دلوقتي ايه موقف الarray of string من موضوع الimmutibility
يعني لو عندنا array فيها 5 strings
وجيت عملت اي تعديل في اول سترنج اللي هو في اول مكان في الاراي...ايه اللي هيحصل؟؟؟
هل الاراي كلها علي بعضها هتتنشيء مرة تانية عند ريفرانس جديد زي ما بيحصل مع السترنج العادي؟ولا اول مكان بس هو اللي الريفرانس بتاعه هيتغير؟؟؟
بس لو اول مكان بس هو اللي الريفرانس بتاعه هيتغير يبقي كدة الاراي فقدت معناها لان اساسا الاراي بتبقي عبارة عن مجموعة اماكن ورا بعضها في الميموري فمينفعش كل بوزيشن فيها يبقي في حتة...كدة هتبقي لينكد ليست
ف ياريت حضرتك تقولي ايه اللي بيحصل بالظبط
مستني رد حضرتك و شكرا جزيلا يا بشمهندس
في رعاية الله
سلام عليكم
انا حليت Assignment
ممكن ياريت حضرتك تشوفه وتقولي ملاحظاتك
وشكرا علي مجهود حضرتك معانا
حاولت ابعته لحضرتك في رسالة داخليه بس معرفتش مكنتش مكفيه الرسالة كلهاكود:import java.util.Scanner; public class JustifyText { public static String[] JustifyText(String[] text) { int max = 0; for (int i = 0; i < text.length; i++) { if (text[i] != null) { if (max < text[i].length()) { max = text[i].length(); } } } for (int i = 0; i < text.length; i++) { String append = ""; if (text[i] != null) { for (int j = 0; j < max - text[i].length(); j++) { append = append + " "; } text[i] = append + text[i].toUpperCase(); } } return text; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("Enter Size Of Array "); int sizearray = sc.nextInt(); String[] x = new String[sizearray]; for (int i = 0; i < sizearray; i++) { System.out.print("Enter Elem. Number " + (i + 1) + " "); x[i] = sc.next(); } String[] y = new String[sizearray]; y = JustifyText(x); for (int i = 0; i < y.length; i++) { if (y[i] != null) { System.out.println(y[i]); } } } }
@ eslam : بص دلوأتي انا لما بقول Array of Strings انت بتقصد بيها انها Array of String References or Remote controls
يعني اللي جوا الاراي مش String Object ده مجرد حاجة بتشاور عليه و قابله للتغيير يعني انت نفترض اننا عندنا المثال ده
دلوأتي انا عملت اراي فيها 3 اماكن او ريموت كونترولز بتشاور علي 3 سترنجات لما جيت غيرت تاني ريموت كونترول انا غيرت قيمه المكان اللي بيشاور عليه بس و خلي بالك ان ال Array is an Object في حد ذاتها يعني هي كلها في ال Heap و الاسترنجات اللي هي بتشاور عليها في ال String Constant Poolكود:String[] myStr = {"Ahmed", "Eslam", "Mohamed"}; myStr[1] = "Ibrahim";
معني كدا ان فعلا ال Array مراحتش في حته تانية يعني هي زي ما هي في ال Heap as an any other Object و اللي اتغير قيمه الريموت كونترول بس بأت تشاور علي مكان تاني كأنك بتساوي قيمه int بقيمه تانية.
اعتقد كدا وضحت شوية.... و لو فيه اي استفسار تاني اتفضل يا اسلام
-------------------------------------------------
بالنسبة لوليد ممتاز بجد و كودك بيطلع نتائج صحيحه و كويسه جدا
انا هعمل بس شوية optimization مش اكتر
اي استفسار تاني هحاول اكون متواجد علي السايت يوميا بأذن اللهكود:import java.util.Arrays; // Enables me to use Arrays.sort() public class JustifyText { public static String[] format(String[] text) { /* int max = 0; for (int i = 0; i < text.length; i++) { if (text[i] != null) { if (max < text[i].length()) { max = text[i].length(); } } } */ int numOfEle = text.length ; // number of elements int lengths[] = new int[numOfEle] ; // Array of lengths of all Strings for(int i = 0 ; i<text.length ; i++){ // filling the Array with the lengths lengths[i] = text[i].length() ; } Arrays.sort(lengths); // Sorting the lengths ascendingly if(lengths[0]==lengths[numOfEle-1]){ // this check will eleminate the program if all lengths have the same value we can save our time after this check return text ; } int maxLength = lengths[numOfEle-1]; // the last element in the lengths is the maximum length for (int i = 0; i < text.length; i++) { // String append = ""; if (text[i] != null) { /* for (int j = 0; j < maxLength - text[i].length(); j++) { append = append + " "; } * */ while(text[i].length()<maxLength){ text[i] = " " + text[i]; }//end of while }// end of if check }// end of the for loop return text; }//end of the format method code }//end of the class
السلام عليكم ورحمة الله وبركاته
ده حل الاسينمنت يا بشمهندس
كود PHP:
//This is the class file
package all_about_strings;
public class JustifyText {
public String[] Format(String[] text) {
int MaxLength = text[0].length();
boolean equal_length = true;//a boolean value to indicate if all the strings in the array
//are equal in length or not,if it is true,then no padding is needed.
for (int i = 1; i < text.length; i++) {
if (text[i].length() > MaxLength) {
MaxLength = text[i].length();
equal_length = false;
}
}
if (!equal_length) {
for (int i = 0; i < text.length; i++) {
text[i] = Pad(text[i], MaxLength - text[i].length());
}
}
return text;
}
private String Pad(String s, int l) {
StringBuffer SBuff = new StringBuffer();
for (int i = 0; i < l; i++) {
SBuff.append(" ");
}
SBuff.append(s);
return SBuff.toString();
}
}
سلام عليكمكود PHP:
//This is the main program for testing
package all_about_strings;
public class Main {
public static void main(String[] args)
{
String[] s={"AYMAN","MOSTAFA","AMR","HANI"};
JustifyText j=new JustifyText();
String[] result;
result=j.Format(s);
for(int i=0;i<result.length;i++)
System.out.println(result[i]);
}
}
السلام عليكم ورحمة الله وبركاته
تمام يا بشمهندس المعلومة وضحت بالنسبالي
جزاك الله كل خير
سلام عليكم
كودك كويس اوي يا اسلام و عجبتني الجزأيه بتاعت ال method ده كويس انك تقسم البرنامج بتاعك لاكتر من ميذود و تخلي كل وظيفه في ميثود ده بيسهل عليك كتير في ال debugging لو فيه مشكله بس بجد هايلكود:public class JustifyText { public String[] format(String[] text) { int MaxLength = text[0].length(); // just an Assumtion , indeed it's a nice one Eslam boolean equal_length = true;//a boolean value to indicate if all the strings in the array //are equal in length or not,if it is true,then no padding is needed. for (int i = 1; i < text.length; i++) { if (text[i].length() > MaxLength) { MaxLength = text[i].length(); equal_length = false; break ; // save some time and loops ya Eslam :> } } if (!equal_length) { // this statment equals if(equal_lenght != true) just for illustration for (int i = 0; i < text.length; i++) { text[i] = Pad(text[i], MaxLength - text[i].length()); } } return text; } //nice method and abstraction ya eslam you are the man :) private String Pad(String s, int l) { StringBuffer SBuff = new StringBuffer(); for (int i = 0; i < l; i++) { SBuff.append(" "); } SBuff.append(s); return SBuff.toString(); } }
ملحوظة بسيطة يا اسلام ال method اسمها من المصطلح عليه انها تكون بادئه بحرف small و كل حرف في بدايه كل كلمه جديدة يكون capital زي كدا myClaculateMethod دي حاجة conventional ليس اكثر
انت و وليد كودكم شغال صح و انا لو بعمل تعديل بيكون بيوفر في الوقت ليس اكثر
شكرا يابشمهندس علي التعديل استفدت منه كتير
ومستنين باقي الدروس
وشكرا علي مجهود ووقت حضرتك
شكرا يا بشمهندس ع الشرح الرائع وده المنتظر منك دايما
السلام عليكم ورحمة الله وبركاته
شكرا يا بشمهندس لرد حضرتك والحمد لله ان الكود طلع صح
يلا بقي يا بشمهندس احنا في انتظار الدرس التاني احنا مستعجلين:D
والف شكر علي مجهودك معانا وربنا يكرمك
في رعاية الله
سلام عليكم
فى انتظار الدرس التالى على جمرة م النار :d
جزاك الل ه كل خير يا بشمهندس وربنا يجعله فى ميزان حسناتك
وان شاء الله نتابع معاك الحلقات
السلام عليكم ورحمة الله وبركاته
ازي حضرتك يا بشمهندس يارب تكون بخير
ايه اخبار الدرس التاني يا بشمهندس
حضرتك ناوي تنزله امتي
احنا في انتظاره ويارب حضرتك تنزله بسرعة
شكرا يا بشمهندس
في رعاية الله
سلام عليكم
المفضلات