به طور معمول، وقتی که میخواهیم با کاراکتر ها (حروف) در جاوا کار کنیم، از نوع داده اولیه char استفاده میکنیم. در این مقاله میخواهیم به طور کامل کلاس Character در جاوا را بررسی کنیم. با برنامه چی همراه باشید.
در این جلسه آموزشی سرفصل های زیر بررسی میشوند:
مثال
کاراکتر های فرار (Escape Sequences)
مثال
خروجی
متدهای کلاس کاراکتر
موضوع جلسه بعدی چیست؟
منابع بیشتر برای مطالعه
مثال
در ابتدا یک مثال را با یکدیگر بررسی میکنیم:
char ch = 'a'; // Unicode for uppercase Greek omega character char uniChar = '\u039A'; // an array of chars char[] charArray ={ 'a', 'b', 'c', 'd', 'e' };
در این مثال مشاهده میکنید که در خط اول یک متغیر از نوع char (یا همون کاراکتر) تعریف کردیم که نام آن ch است. سپس در قسمت وسطی دوباره کد یک کاراکتر از نوع char و به نام uniChar تعریف کرده ایم. در قسمت سوم اما یک متغیر از نوع آرایه تعریف کردیم که میتواند کاراکتر هایی را درون خودن جای بدهد و نام آن هم charArray است.
اما با اینحال گاهی در زمان برنامه نویسی، شرایطی پیش می آید که نیاز داریم که از آبجکت ها (اشیاء) به جای داده های اولیه استفاده کنیم. برای این شرایط زبان جاوا دارای کلاس Wrapper به نام Character است که برای نوع داده اولیه char استفاده میشود.
کلاس کاراکتر دارای تعدادی متد مفید میباشد که میتوانید با استفاده از آنها کاراکتر ها را دستکاری کنید. شما میتوانید یک آبجکت از کلاس کاراکتر با استفاده از متد سازنده کلاس Character بسازید:
Character ch = new Character('a');
کامپایلر جاوا خودش نیز بصورت اتوماتیک میتواند تحت شرایط خاصی برای شما آبجکت هایی از جنس Character بسازد. به عنوان مثال اگر شما یک داده اولیه از نوع کاراکتر را به متدی پاس بدهید که نیاز به یک آبجکت دارد، کامپایلر جاوا بصورت اتوماتیک char را برای شما به Character تبدیل میکند. به این ویژگی در جاوا Autoboxing یا Unboxing گفته میشود (البته اگر برعکس این عمل اتفاق بیوفتد). میتوانید توضیحات کامل را در لیک زیر مشاهده کنید.
مثال
// Here following primitive char 'a' // is boxed into the Character object ch Character ch = 'a'; // Here primitive 'x' is boxed for method test, // return is unboxed to char 'c' char c = test('x');
در این مثال مشاهده میکنید که یک متغیر به نام ch و از نوع کلاس Character تعریف کرده ایم و مقدار a را درون آن ریخته ایم. یعنی عمل Autoboxing در این قسمت اتفاق می افتد. در قسمت دوم هم یک متغیر از نوع داده اولیه char تعریف کردیم ولی یک آبجکت Character در آن ریخته ایم. در این قسمت عمل Unboxing اتفاق می افتد.
کاراکتر های فرار (Escape Sequences)
وقتی که یک کاراکتر (حرف) در کنار یک بک اسلش (\) قرار بگیرد، یک کاراکتر فرار ایجاد میشود و برای کامپایلر معنی خاصی دارد. شاید در جلسه های آموزشی تا کنون دیده باشید که کاراکتر فرار (\n) برای رفتن به خط بعد، در کنار دستور System.out.println() بسیار استفاده شده است.
در جدول زیر میتوانید همه کاراکتر های فرار جاوا را مشاهده کنید:
کاراکتر فرار | توضیحات |
---|---|
\t | در هر نقطه از متن نوشته شود، یک فاصله به اندازه Tab ایجاد میکند. |
\b | در هر نقطه از متن نوشته شود، مانند یک backSpace عمل میکند. |
\n | در هر نقطه از متن نوشته شود، ادامه متن را به خط بعدی منتقل میکند. |
\r | در هر نقطه از متن نوشته شود، یک Carriage Return برگردانده میشود. |
\f | در هر نقطه از متن نوشته شود، یک فرم خبرخوان را درون متن ایجاد میکند. |
\’ | یک علامت نقل قول تکی را درون نوشته ایجاد میکند. |
\” | یک علامت نقل قول دوتایی را درون نوشته ایجاد میکند. |
\\ | یک کاراکتر بک اسلش را درون متن ایجاد میکند. |
شاید به دلیل راستچین بودن متن های سایت، کاراکتر ها وارونه نمایش داده شوند. برای دیدن مدل صحیح، مثال های موجود در همین مقاله را مشاهده کنید.
وقتی یک کاراکتر فرار در یک دستور Print نوشته میشود، کامپایلر بصورت خودکار یکی از عمل هایی که در جدول بالا نوشته شده است را اجرا میکند.
مثال
به عنوان یک نکته باید بدانید که اگر میخواهید یک نقل قول را درون یک رشته استفاده کنید و چاپ بشود، باید از کاراکتر فرار \” استفاده کنید.
public class Test { public static void main(String args[]) { System.out.println("She said \"Hello!\" to me."); } }
در این مثال مشاهده میکنید که درون دستور println، از کاراکتر های فرار، برای استفاده از علامت نقل قول درون رشته استفاده شده است. نتیجه آن را هم میتوانید در خروجی مشاهده کنید.
این کدها خروجی زیر را تولید میکنند.
خروجی
She said "Hello!" to me.
متدهای کلاس Character
در جدول زیر میتوانید یک لیست از مهمترین متدهایی که در کلاس Character جاوا وجود دارند را مشاهده کنید و نحوه استفاده و کارایی آنها را یاد بگیرید.
ردیف | متد و توضیحات |
---|---|
۱ | متد isLetter مشخص میکند که آیا آرگومان ورودی یک حرف است یا خیر. |
۲ | متد isDigit مشخص میکند که آیا آرگومان داده شده یک عدد است یا خیر. |
۳ | متد isWhiteSpace مشخص میکند که آیا آرگومان داده شده یک فاصله خالی است یا خیر. |
۴ | متد isUpperCase مشخص میکند که آیا آرگومان داده شده از حروف بزرگ است یا خیر. |
۵ | متد isLowerCase مشخص میکند که آیا آرگومان داده شده از حروف کوچک است یا خیر. |
۶ | متد toUpperCase آرگومان های ورودی را به حروف بزرگ تبدیل میکند. |
۷ | متد toLowerCase همه آرگومان های ورودی را به حروف کوچک تبدیل میکند. |
۸ | متد toString یک آرگومان را دریافت میکند و یک آبجکت را که حاوی همان آرگومان ورودی است، برمیگرداند. |
در این جلسه درباره کلاس Character جاوا مطالبی را یاد گرفتیم و چندین مثال را نیز بررسی کردیم. اگر نکته ای باقی مانده یا سوالی در ذهن شما وجود دارد، میتوانید با نوشتن آن در قسمت نظرات (همین پایین)، این مقاله آموزشی را کامل تر کنید.
موضوع جلسه بعدی چیست؟
در جلسه بعدی از دوره آموزش جاوا، درباره کلاس String در این زبان برنامه نویسی مطالبی را یاد خواهید گرفت. نحوه تعریف و استفاده از کلاس String و همچنین تعدادی از مهمترین متد های این کلاس را میتوانید در جلسه بعدی مشاهده کنید.
منابع بیشتر برای مطالعه
در صورت تمایل از لینک های زیر برای یادگیری و مطالعه بیشتر درباره کلاس Character استفاده کنید:
سلام، من مفهوم r\ را متوجه نشدم، من با پایتون کار میکنم و n\ و r\ هردو فقط یه خط پایین میروند؟!
سلام و خسته نباشید خدمت شما دوست عزیز.
کاراکتر \r در اصل کارتریج رو به اول خط برمیگردونه. این کاراکتر توی پرینتر های قدیمی استفاده میشده ولی الان زیاد دیگه استفاده ای نداره. کاراکتر \n ولی میره روی خط بعدی. معمولا برای رفتن به خط بعدی و رفتن به اول خط، از هردوی این کاراکتر ها در کنار هم استفاده میکنن.
با سلام آقای خانقلی میخواستم بدونم تمامی کد های در آموزش هست در محیطAndroid_Studio زدین یا محیط Net_Beans و سوال بعدی اینکه محیط خاصی برای یاد گیر زبان java هست یا خیر ، یا مشه از IDE که اسم بردم استفاده کرد و کدام بهترین محیط هست با تشکر
سلام خدمت شما آقا محمد عزیز.
کدهای آموزش جاوا که توی این آموزش ها مشاهده میکنین برای راحتی کار توی محیط برنامه نویسی Eclipse نوشته شدن که کامپایلر جاوا داره و برای کارکردن جاوا معمولا از اون استفاده میشه. البته NetBeans هم بسیار قدرتمنده و میتونین از هرکدوم که راحت تر هستین استفاده کنین.
اما اگر میخواین با استفاده از زبان جاوا برای اندروید برنامه نویسی کنین، حتما بهتون پیشنهاد میکنم بجز اندروید استودیو از IDE دیگه ای استفاده نکنین.
همچنین این نکته رو هم خوبه بدونین که چون اندروید استودیو با استفاده از Gradle پروژه هایی که مینویسین رو تبدیل به اپلیکیشن میکنه، شما نمیتونین ازش برای تست کردن کدهای جاوا استفاده کنین. یا به زبون ساده تر بگم بهتون اجازه دسترسی مستقیم به کامپایلر جاوا رو نمیده. بهتره برای آموزش خود جاوا از اون دوتا اولی که گفتم استفاده کنین و برای اندروید از Android Studio.
باز هم اگر سوالی بود در خدمتتون هستم.