کاراکتر ها در جاوا

کاراکتر ها در جاوا

در جاوا از نوع داده char براي ذخيره كردن كاراكترها استفاده مي شود . اما برنامه نويسان Cو ++C و آگاه باشند كه char در جاوا مشابه char در زبانهاي C و ++C نيست . در زبانهاي Cو ++C و نوع char يك نوع عدد صحيح با پهناي 8 بيت است. اما جاوا متفاوت عمل مي كند. جاوا از كدهاي جهاني (unicode) براي معرفي كاراكترها استفاده مي كند. كدهاي جهاني يك مجموعه كاملاً جهاني از كاراكترها هستند كه مي توانند همه كاراكترها را معرفي نمايند . اين مجموعه شامل ده‌‌ها مجموعه كوچك تر كاراكتري نظير Latin، Greek ، Arabic ، Cyrillic ، Hebrew ، Katakana ، Hangul و امثال آن است.

براي اين منظور، 16 بيت مورد نياز است. بنابراين char در جاوا يك نوع 16 بيتي است. دامنه char از 0 تا 65536 مي‌باشد. در نوع char مقدار منفي وجود ندارد. مجموعه استاندارد كاراكترها موسوم به ASCII همچون گذشته داراي دامنه از 0 تا 127 و مجموعه كاراكترهاي 8 بيتي توسعه يافته موسوم به lso-Latin-1 داراي دامنه از 0 تا 255 مي باشند .

چون در جاوا امكان نوشتن ريز برنامه ها براي كاربري جهاني وجود دارد ، بنظر مي رسد كه بهتر است جاوا از كدهاي جهاني براي معرفي كاراكترها استفاده نمايد. البته بكار بردن كدهاي جهاني درمورد زبانهايي نظير انگليسي، آلماني، اسپانيايي يا فرانسوي كه كاراكترهاي آنها را مي توان براحتي داخل 8 بيت جاي داد، تا حدي سبب نزول كارآيي خواهد شد اما اين بهايي است كه براي رسيدن به قابليت حمل جهاني در برنامه ها بايد پرداخت.

اطلاعات بيشتر درباره كدهاي جهاني را در آدرس‌هاي وب زير پيدا خواهيد نمود:

http://www.unicode.org
http://www.stonehand.com/unicode.html

حال برنامه اي را مشاهده مي كنيد كه متغيرهاي char را نشان مي دهد :

// Demonstrate char data type.
class CharDemo {
public static void main(String args[] ){
char ch1/ ch2;
ch1 = 88; // code for X
ch2 = 'Y';
System.out.print("ch1 and ch2 :");
System.out.println(ch1 + " " + ch2);
}
}

خروجی این برنامه بدین صورت می باشد

ch1 and ch2 :xy

دقت كنيد كه مقدار 88 به ch1 نسبت داده شده ، كه مقدار متناظر با حرف x در كد ASCII و كد جهاني است. قبلاً هم گفتيم كه مجموعه كاراكتري ASCII 127 مقدار اوليه در مجموعه كاراكتري كدهاي جهاني را اشغال كرده است . به همين دليل كليه فوت و فن‌هاي قديمي كه قبلاً با كاراكترها پياده كرده ايد ، در جاوا نيز به خوبي جواب مي دهند.

اگر چه انواع char عدد صحيح محسوب نمي شوند ، اما در بسياري از شرايط مي‌توانيد مشابه عدد صحيح با آنها رفتار كنيد . بدين ترتيب قادريد دو كاراكتر را با هم جمع نموده و يا اينكه مقدار يك متغير كاركتري را كاهش دهيد .

برنامه زير را در نظر بگيريد

// char variables behave like integers.
class CharDemo2 {
public static void main(String args[] ){
char ch1;
ch1 = 'X';
System.out.println("ch1 contains " + ch1);
ch1++; // increment ch1
System.out.println("ch1 is now " + ch1);
}
}

خروجی این برنامه بدین صورت می باشد

ch1 contains x
ch1 is now y

در برنامه ابتدا مقدار x به ch1 اختصاص داده مي‌شود سپس ch1 افزايش مي يابد. اين روال باعث مي شود تا ch1 حرف y را اختيار كند، كه كاراكتر بعدي در ترتيب ASCII مي باشد.



نظرات کاربران



عبارت امنیتی : حاصل 2 × 1 می شود :
متن پیام :