عرض النصوص
الأهداف
أن يخزن المتدرب النص بواسطة سلاسل الحروف
أن يعرض المتدرب نصوص في البرنامج
أن يدرج المتدرب حروفا خاصة في سلاسل الحروف
أن يلصق سلسلتين من الحروف معا
أن يدرج المتغيرات ضمن سلسلة الحروف
أن يقارن بين سلسلتي حروف
أن يحدد طول سلسلة الحروف
أن يغير حروف نص من حروف كبيرة الى صغيرة
أن يعدد استعمالات سلاسل الحروف
--------------------------------------------------------------------------------
نرحب بكم مرة ثانية ونواصل بإذن الله سلسلة دروسنا مع الجافا ونلتقي في هذا الدرس مع عرض النصوص هيا بنا
يا أستاذ ماذا تقصد بسلاسل الحروف ؟
Strings سلاسل الحروف
مجموعات من النصوص التي تتكون من الحروف الأبجدية والأرقام وعلامات الترقيم وغيرها من الرموز
ولكن ما الفرق بينها وبين الحروف ؟
الحرف كما عرفنا سابقا هو حرف أبجدي واحد أو رقم عشري واحد أو علامة ترقيم أو أي رمز من الرموز الأخرى المعروفة وفي لغة الجافا يعتبر الحرف من المعلومات التي يمكنناتخزينها في متغير
char سبق وأن عرفنا أن المتغير من النوع
يستخدم لتخزين حرف واحد على سبيل المثال
char keyopen='$';
key open هذه الجملة تنشىء متغيرا باسم
لتخزين حرفا واحدا ونلاحظ هنا أنه يمكننا تحديد قيمة أولية للمتعير ونؤكد على أن قيمة الحرف يجب أن تحاط بعلامة اقتباس مفردة
طيب اذا أردت تخزين نص ماذا افعل يا أستاذي ؟
ياصديقي حينما تريد تخزين نص ما عليك إلا أن تنشىء متغيرا من النوع استرينج وتعطيه اسما كما يلي
String studentName="Ahmad bahaa eldin Hegazy";
تنشىء هذه الجملة متغيرا من النوع استرينج يسمى ـ اسم الطالب ـ ويخزن فيه النص أحمد بهاء الدين حجازي
عفوا يا أستاذ لاحظت هنا ملاحظة لا أدري هل تستحق أن أطرحها أم أطرحها جانبا ؟
لا حياء في العلم وقد قال لي صديق ذات مرة أن علوم الحاسب تختلف نوعا ما عن باقي العلوم حيث هي تطلب ولا تمنح ولقد قرأت بحثا مسفيضا لأحد أساتذة طرق التدريس في جامعة عريقة عن الاختلافات في طرق تدريس علوم الحاسب عن باقي العلوم وخلاصة القول هو أنك تسأل عن أي شيء بدون تردد
شكرا يا أستاذ الملاحظة هي أن اسم المتغير استرينج بخلاف جميع أنواع المتغيرات ألأخرى قد بدأ بحرف كبير فهل هذا له معنى ؟
int float char boolean هذه المتغيرات وغيرها تبدأ بحروف صغيرة ولكن المتغير من النوع استرينج يجب أن يبدأ بحرف كبير
String هكذا
والسبب يا صديق هو في سلاسل الحروف التي التي تعتبر نوع خاص من الموارد يسمى كائنات ويجب أن يكون الحرف الأول من اسم نوع كل الكائنات حرفا كبيرا وسوف نتناول موضوع الكائنات بالتفصيل في الدروس مستقبلا بعون الله
بارك الله فيك يا أستاذي العزيز ـــ والآن كيف يمكننا عرض هذه السلاسل في البرنامج ؟
سبق أن قولنا أنه لعرض نص في البرنامج نكتب ما يلي
system out println("Line of Force of Magnetic Field.")
تنتج هذه الجملة النص التالي
Line of Force of Magnetic Field.
طيب يا أستاذ ثمة أمر آخر ألاحظ أن علامتي الاقتباس لم تعرض فكيف أعرض علامات الاقتباس ذاتها والأقواس ؟
وضعت لغة الجافا رموزا خاصة لعرض علامات الإقباس المفردة أو المزدوجة أو الشرطة المائلة مثال
ما تعرضه
الرمز
علامة اقتباس مفردة
\'
شرطة مائلة للخلف
\\
علامة اقتباس مزدوجة
\"
علامة جدولة
\t
تراجع
\b
من أول السطر
\r
تغذية النموذج
\f
سطر جديد
\n
كيف أدمج نصين معا ؟ يعني كيف ألصق سلسلتين من الحروف معا ؟
يستعمل المؤثر + للصق نصين معا واليك هذا المثال
system out println("\"The Series of Hydrogen Spectrum\'are Leyman's series" +
"Balmer's series \"\n\t~pacshen's series");
--------------------------------------------------------------------------------
هل يمكننا استعمال متغيرات أخرى مع سلاسل الحروف
نعم يمكننا استعمال متغيرات أخرى ونستخدم المعامل + لربط هذه المتغيرات والسلاسل كما في المثال التالي
int length = 102;
char degree = 'M';
system out println("operating time :"+ length + "minutes");
system out println("Degree" + degree);
سيكون الناتج الذي يعرض على الشاشة
operating time : 102 minutes
Degree M
--------------------------------------------------------------------------------
ونحن نتقدم الآن يلح علي سؤال يرتبط بهذا الأمر كيف يعرف برنامج البريد الالكتروني مثلا أني قد كتبت اسمي خطأ اذا حدث ذلك ؟
صحيح يحدث هذا والأمر الذي سوف نركز عليه في برامجنا هو التحقق من مساوة سلسلة حروف لسلسلة أخرى ونقوم بهذا الإجراء باستعمال الجملة
equals( )
اليك هذا المثال
String favorite = "ahli";
String guess = "zamalek";
system out println("Is omda's favorite sport club a" + guess + "?");
system out println("Answer :" + favorite. equals(guess));
نلاحظ أن الجزء الأخير
favorite. equals(guess)
Method يسمى
وهو وسيلة تستخدمها الجافا لتحديد ما اذا كانت سلسلة حروف تحتوي على نفس القيمة الموجودة في سلسلة أخرى فاذا كان المتغيران من النوع استرينج في المثال السابق يحتويان نفس القيمة يتم عرض النص صواب والعكس يتم عرض النص خطأ
Is omda's favorite sport club a zamalek ?
Answer : false
--------------------------------------------------------------------------------
كيف نغير حالة الحروف من صغير الى كبير والعكس؟
لغة الجافا تحتوي على طرق لعرض سلاسل الحروف بأحرف كبيرة أو أحرف صغيرة
ToUpperCase( ) أحرف كبيرة
ToLowerCase( ) أحرف صغيرة
اليك هذا المثال
String teacher = "Samy Adnan"
String change = teacher.toUpperCase( );
سوف تتحول كل الحروف في السلسلة الى حروف كبيرة أي الى
SAMY ADNAN
--------------------------------------------------------------------------------
هل نستطيع احصاء عدد حروف كلمة معينة ؟
length( ) نعم نستطيع ونستخدم النهج
int nameLength = gravitational.length( );
واليك هذا التمرين الاجمالي
في هذا التمرين نعرض لأسماء مراجع في الفيزياء
class RePhysics {
public static void main(String[] arguments) {
String title = "The Resources";
String dir = "Physics Resources";
String res1 = "College Physics";
int year1 = 1968;
String auth1 = "Raytheon Education Company";
String res2 = "Fundamentals of Physics";
int year2 = 1974;
String auth2 = "D. Haliday and R. Resnick";
String res3 = "Practical Physics";
int year3 = 1972;
String auth3 = "John Murry";
String res4 = "Physics";
int year4 = 1979;
String auth4 = "Macmillan Publishing";
// display information
System.out.println(title + "\n" +
dir + " \n\n" +
res1 + "\t" + auth1 + "\t" + year1 + "\n" +
res2 + "\t" + auth2 + "\t" + year2 + "\n" +
res3 + "\t" + auth3 + "\t" + year3 + "\n" +
res4 + "\t" + auth4 + "\t" + year4);
}
}
--------------------------------------------------------------------------------
ويكون خرج هذا البرنامج بعد ترجمته كما في الصورة
لتحميل المصدر و الكلاس لهذا البرنامج
http://www.deyaa.org/les6.zip