بسم الله الرحمن الرحيم
(الدرس الثاني)
سوف أقوم بشرح أهم ثلاثه كلاسات في الجافا من نظري الى وهي
Math , Scanner , String
وأحاول أشرح أهم الثيد الموجوده في كل كلاس فلنبداء على بركة الله عز وجل
التعامل مع النصوص
String
في البدايه لابد أن نعرف أن النصوص تختلف عن الأعداد في كثير من الأشياء.من أهمها مقارنه بين نصيين(سوف أتطرق إلى هذا الموضوع في درس المقارنه)
لابد أن نعرف إنه String أصلح كلاس يحتوي على العديد من المثيد سوف أذكر أهمها:
length()
عندما تستدعي المثيد هذه فإن عملها هو أن يعطيك طول النص حرف حرف (إنتبه حتى المسافه يعتبرها حرف)
لابد أن تعرف الن طول النص يكون عدد صحيح )int(
إذاً هذه المثيد ترجع int
يبدأ يعد من واحد إلى النهايه
طريقة إستخدامها
في البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم length()
القوسان () يكونان فارغان
مثال:
"Alraddadi".length();
أو
String s = "Alraddadi";
s.length();
ولكن لو تلاحظ إحنا طلبنا يستدعي المثيد length() وهذه ترجع لنى عدد صحيح بس إحنا ما حفضنى العدد في في متغير من نوع int علشان نستخدمه بعدين
لابد أن نحفظه في متغير نوعه زي نوع الى يرجع المثيد
فيسير كذا
int x = "Alraddadi".length();
تصبح هنا قيمة المتغير x هي طول عدد الأحرف في كلمة Alraddadi
يعنى x = 9
أو
String s = "Alraddadi";
int x = s.length();
تصبح هنا قيمة المتغير x هي طول عدد الأحرف في المتغير s الذي يحتوي على كلمة Alraddadi
يعنى x = 9
---------------------------
equals()
للمساواه بين نصين
يرجع لك true إذا كانوا متساوين ويرجع false إذا كانوا ليس متساوين
إذاً هذه المثيد ترجع Boolean
طريقة إستخدامها
في البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم equals()
ويكون بين القوسين () إما نص بين علامتين تنصيص أو فقط متغير من نوع String
مثال:
Boolean w = "Alraddadi".equals("Alraddadi");
طبعاً راح يسير قيمة المتغير w بـ true لإن النصين متساويين
أو
Boolean w = "Alraddadi".equals("alraddadi");
طبعاً راح يسير قيمة المتغير w بـ false لإن النصين غير متساويين
لاحظ أنه فيه فرق كبير بين السمول و الكبتل في لغة الجافا.
أو
String s1 = "Alraddadi";
String s2 = "alraddadi";
Boolean w = s1.equals(s2);
طبعاً راح يسير قيمة المتغير w بـ false لإن النصين غير متساويين
......
-----------------------
equalsIgnoreCase()
نفس عمل equals() بالتمام إلا أنها لا تفرق بين السمول و الكبتل
-----------------------
toLowerCase()
لجعل نص محدد كله سمول
هذه المثيد ترجع String
طريقة إستخدامها
في البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم toLowerCase()
ويكون القوسين () فارغين
مثال
String s = "RADDADI".toLowerCase();
راح يسير قيمة المتغير s "raddadi" لاحظوا حولها لسمول
-------------------------
toUpperCase()
نفس عمل toLowerCase() بس يرجعها كبتل
-------------------------
trim()
لحذف الفراغات الزايده
هذه المثيد ترجع String
طريقة إستخدامها
في البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم trim()
ويكون القوسين () فارغين
مثال
String s = " Hmm ".trim();
راح يسير قيمة المتغير s "Hmm" لاحظوا حذف الفراغات الزايده
-----------------------
charAt()لأخذ حرف واحد من نص
هذه المثيد ترجع char لإنه بس نبغى حرف واحد
يبدأ يعد من صفر إلى النهايهطريقة إستخدامهافي البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم charAt()
ويكون القوسين () بداخلهم مكان الحرف المراد أخذه
مثال
char c = "Alraddadi".charAt(1);
راح يعد لما يصل إلى القيمه الموجوده بين القوسين طبعاً يبدأمن صفر وينتهي عند طول النص - 1
يسير قيمة المتغير c 'l' لاحظوا علامت تنصيص زي كذا ' لإنه من نوع char
الملاحظ الثانيه والمهمه أنو أول مايعد يبدأ من صفر فلو حطينا جو القوسين (0) الناتج يطلع 'A'
---------------------------
substring(~1,~2)هذه صعبه شوي علشان كذا دقق فيها مره
لإخذ نص من نص آخر يبدأ من ~1 إلى ~2 ولكن لا يأخذ ~2 يأخذ الى قبلها
~1 و ~2 لابد يكون عدد إنتجر لإنه طول النص يكون عدد صحيح من المستحيل إنه يكون double
طبعاً أو مايبدأ بترتيب الأحرف يعد من الصفر زي charAt()هذه المثيد ترجع String
طريقة إستخدامهافي البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم substring(~1,~2)
مثال
يعني لو نبي ناخذ الحرفين "dd" من "alraddadi" نبدأ نعد من صفر
صفر = a
1 = l
2 = r
3 = a
4 = d
5 = d
6 = a
7 = d
8 = i
لاحظ أن طول النص 9 بس الطول نبدأ من 1
يعني يسير الكود
String d = "alraddadi";
String s = d.substring(4,6);
أو
String s = "alraddadi".substring(4,6);
يسير قيمة المتغير s "dd"
لاحظ كتبنى (4,6) مو (4,5)
علشان قلنا ياخذ أول ترتيب الى هو ترتيب 4 إذا كان بادي من الصفر
وقلنا 6 علشان ينتهي عند ترتيب الحرف الى قبله
إذا كنت تبى تشوف كم حرف راح يطلع نقص النهايه من البدايه
6-4=2 حرفين
5-4=1 حرف
البدايه معانا بس النهايه لا الى قبل النهايه معانا
ملاحظه إذا كتبنا كذا
substring(~1)
خذ النص من ~1 إلى نهاية النص
-----------------------------
indexOf(~1,~2)هذه صعبه شوي علشان كذا دقق فيها مره
ترجع ترتيب حرف معير أو كلمه أنت تضعه من نص معين
الترتيب يبدأ من صفرهذه المثيد ترجع int لإنه ترتيب النص يكون عدد صحيح من المستحيل إنه يكون double
~1 نضع حرف أو نص الى نبغاه يرجع ترتيبه كم في نص معين من هذه المثيد
~2 نضع بداية البحث عن هذا النص أو الحرف الى نبغاه يبحث عنه من نص معين
إذاً ~1 ندخل فيه نص
و ~2 ندخل فيه عدد صحيح
تقدر تخليه زي كذا
indexOf(~1)يعني يبحث لك عن ~1 من أول النص
طريقة إستخدامهافي البدايه لابد أن تذكر النص بين قوصين أو تذكر متغير لابد أن يكون هذا المتغير من نوع String. لإن المثيد هذه تحت كلاس String
ثم دوت
ثم indexOf(~1,~2)
مثال:
يعني لو نبي يرجع لنا ترتيب أول حرف من "d" من كلمة "alraddadi" نبدأ نعد من صفر
صفر = a
1 = l
2 = r
3 = a
4 = d
5 = d
6 = a
7 = d
8 = i
لاحظ أن طول النص 9 بس الطول نبدأ من 1
لاحظ أول ترتيب ل حرف d هو 4
يعني يسير الكود
String d = "alraddadi";
int x = d.indexOf("d");
أو
int x = "alraddadi".indexOf("d");
راح يسير قيمة المتغير s 4
لو نبيه يجيب ترتيب حرف d الى في ترتيب 7
يسير الكود كتالى
int x = "alraddadi".indexOf("d",6);
راح يروح إلى الترتيب 6 ويلقاه حرف a يمشي للى بعده ويلقاه حرف d وهو المطلوب فيسير قيمة المتفير 7
لاحظ حتى لو حطيت حرف لابد أنك تحط نوع القوس زي كذ " لإن المدخل من نوع String ليس من نوع char
-------------------
lastIndexOf(~1)زي indexOf(~1,~2) بس إنه يرجع ترتيب النص أو الحرف الآخير من نص معين
مثال
int x = "alraddadi".lastIndexOf("d");
يسير قيمة المتفير 7
لإنه آخر حرف d ترتيبه 7
----------------------
ملاحظه تقدر تخلط المثيد مع بعض يسير تقدر تقول
String s = ALRADDADI".substring(0).toLowerCase();
--------------------
برنامج للمراجعه مهم لكى تشوف نفسك فاهم ولا لا
أنصحك بأن تنسخ الكود وتحاول تلعب معاه وتتعلم منه
البرنامج يحول ترتيب الثلاث نصوص من النهايه إلى البدايه ولكن النص لابد أن يكون ثلاثة كلمات
class change{
public static void main(String [] args){
String x = "alraddadi and qatorah";
System.out.print(x.substring(x.lastIndexOf(" ") + 1) + x.substring(x.indexOf(" "),x.lastIndexOf(" ") + 1) + x.substring(0,x.indexOf(" "))) ;
}
}
لاحض +1 علشان نأخذ المسافه
إنشاء الله بعدين لما ندرس اللوب راح نعرف نقلب النص كامل مو شرط كم كلمه...بس أنتم تابعونا....
-----------------------
السؤال الأول
هل
Boolean w = "Alraddadi".equals("alraddadi");
تساوي
String s1 = "Alraddadi";
String s2 = "alraddadi";
Boolean w = s1.equals(s2);
في الأكواد؟؟؟؟؟
السؤال الثاني
عندك هذين النصين
alraddadi
و
Alraddadi
قارن بينهم وجعل المقارنه تكون صحيحه؟ بكتابة كود... وخليه يطبع الناتج
السؤال الثالث
عرف متغير وأعطيه كلمة "aLRADDADI"
زي كذا
String s = "aLRADDADI";
أريده أن يجعل الحرف الأول كبتل و الحروف الأخرى سمول .....عن طريق الأكوادالسؤال الرابع
صعب شوي فيله فكره بس
أريدك أن تكتب برنامج يحول هذا النص
"best the is alraddadi"
إلى
"alraddadi is the best"
عن طريق الأكواد
إستخدم indexOf(~1,~2)
؟؟؟؟؟؟؟؟
------------------------------------
مضطر أوقف هنا ماراح تفهمون لو كملت... وراح تكثر الأفكار ودنا نحاول نذكر الأفكار كلها
راح نشرح أهم الكلاسين الباقين إنشاء الله في الدرس الثالث.....
أكتب هلك بالأكواد في السؤال الثاني والثالث والرابع
أما الأول بس ناقشه
في إنتظار ردودكم وإجاباتكم
مع السلامه