الجمعة، 13 سبتمبر 2013

دورة تعلم الجافا من الصفر (الاساسيات حتى الاحتراف) - الجزء السابع

نشر في :
2.9. Character Data Type and Operations

في السكشن ده بنتعرف علي نوع من المتغيرات وهو الـ char وبيقولنا انه بيستخدم لتمثيل حرف واحد فقط وبتكون قيمته بين '-' ومثال عليه :

كود PHP:
char letter 'A'char numChar '4';  

في المثال الأول حط الحرف A في المتغير اللي اسمه letter وفي المثال التاني حط الرقم 4 ولكن كحرف في المتغير numChar .

ملاحظة : القيمة اللي بحطها في المتغير من نوع char لازم تكون بين single quote لو حطيتها بين double quote هتبقي string وليست char يعني "A" نوعه string ولكن 'A' نوعه char .



2.9.1. Unicode and ASCII Code

في السكشن ده بيعرفنا الحرف بيتقري ازاي ولقراية وتخزين الحروف عندنا نوعين من الكود :unicode & ASCII والجافا بتدعم الunicode وبيكون كود الحروف من اول '\u0000' لحد '\uFFFF' 
وبتكون الحروف مكتوبة بالhexadecimal وده مثال علي طريقة كتابة وقراية الحروف:

يعني دلوقتي عندنا طريقتين ممكن ادخل بيهم قيمة في متغير من نوع char وهما:
كود PHP:
char letter 'A'char letter '\u0041'// Character A's Unicode is 0041  
ملاحظة : طريقة التزويد والتنقيص increment & de
crement ممكن تطبق علي الchar زيه بالظبط زي المتمغيرات العادية وده مثال هيطبع حرف الb:
كود PHP:
char ch 'a'System.out.println(++ch);  





2.9.2. Escape Sequences for Special Characters

احيانا وانا شغال ببقي عايز اني اطبع الناتج ولكن بعد عدد معين من السطور بإستخدام الـtab او اني اسيب سطر , الجافا بتوفر الخاصية دي عن طريق انها عملت حروف خاصة للمهام دي بتكون مسبوقة بعلامة (\) زي اللي في الجدول كده:

افرض مثلا انك عايز تطبع الجملة دي: 
He said "Java is fun"
هنعملها كده:
كود PHP:
System.out.println("He said \"Java is fun\"");  


2.9.3. Casting Between char and Numeric Types

طبعا نقدر نحول المتغير من نوع الchar لأي نوع تاني مفيش اي مشكلة يعني مثلا هنا:
كود PHP:
char c = (char)0XAB0041// the lower 16 bits hex code 0041 is
                     // assigned to c 
System.out.println(c);   // c is character A  
ولما يكون عندنا المتغير من النوع float يعني فيه علامة عشرية بيتم تجاهل الجزء الكسر وبيتحول بس الجزء الصحيح زي كده:
كود PHP:
char c = (char)65.25;   // decimal 65 is assigned to t System.out.println(c);  // c is character A  
ونفس الحكاية لما اجي احول من char لأي نوع تاني زي كده مثلا:
كود PHP:
int i = (int)'A';       // the Unicode of character A is assigned to i System.out.println(i);  // i is 65  
ملاحظة: عند تحويل قيمة من نوع char بتتحول لرقم اوتوماتك لو كان القيم الأخري ارقام او حروف ولو موجودة مع string بتنضاف عليه زي ماهي يعني بيحصل دمج مش اكتر زي المثال ده:
كود PHP:
int i '2' '3'// (int)'2' is 50 and (int)'3' is 51 System.out.println("i is " i); int j 'a'// (int)'a' is 97 System.out.println("j is " j); System.out.println(" is the Unicode for character " + (char)j); System.out.println("Chapter" '2'); display
i is 101
j is 99
99 is the Unicode 
for character c
Chapter 2  


2.10. The String Type
احنا دلوقتي عرفنا متغير يقدر يشيل حرف , طيب بس انا عايز اخزن جملة بحالها اقولك يبقي هاتستخدم متغير بس من نوع string زي كده :
كود PHP:
String message "Welcome to Java";  
ولكن الstring مش زي كل الانواع لأنه مربوط بclass زيه زي الJOptionPane يعني الstring مايعتبرش من الأنواع الجاهزة زي ال int, double يعني مايعتبرش primitive type ولكن هو يعتبر reference type معني الكلام ده هيوضح قدام اللي يهمنا دلوقتي هو ازاي اعمل متغير من نوع string وازاي احط فيه قيمة او ادمج اتنين string مع بعض ودي امثلة عليه :
كود PHP:
// Three strings are concatenated String message "Welcome" "to" "Java"// String Chapter is concatenated with number 2 String s "Chapter" 2// s becomes Chapter2
// String Supplement is concatenated with character B 
String s1 "Supplement" 'B'// s becomes SupplementB  

وكمان ممكن استخدم معاه كود الإختصار ده += يعني لو عندنا String فيه قيمة "Welcome to java" واسمه مثلا message لو قولت كده:
كود PHP:
message += " and Java is fun";  
هيكون الناتج كده: "Welcome to Java and Java is fun"
بيقول مثال لو عندنا i=1 و j=2 هيبقي ايه ناتج الجملة دي???
كود PHP:
System.out.println("i + j is " j);  
اللي هيحصل انه هيطبع "i+j is " وبعد كده هيطبع قيمة i وبعد كده قيمة j اللي هي 12 يعني هيبقي الناتج :
كود PHP:
j is 12  
ولو عايز اطبع قيمة الجمع بين i و j يبقي هحطهم بين اقواس زي كده:
كود PHP:
System.out.println("i + j is " +( j));  

ليست هناك تعليقات:

إرسال تعليق

جميع الحقوق محفوظة سيف شابسوغ ©2012-2013 | جميع المواد الواردة في هذا الموقع حقوقها محفوظة ، فهـرس الـموقــع | أتفاقية الأستخدام