کلاس Character در جاوا

جلسه چهاردهم – کار با کاراکتر ها در جاوا با کلاس Character

به طور معمول، وقتی که میخواهیم با کاراکتر ها (حروف) در جاوا کار کنیم، از نوع داده اولیه 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 استفاده کنید:

درباره نویسنده

4 در مورد “جلسه چهاردهم – کار با کاراکتر ها در جاوا با کلاس Character”

  1. سلام، من مفهوم r\ را متوجه نشدم، من با پایتون کار میکنم و n\ و r\ هردو فقط یه خط پایین میروند؟!

    1. سلام و خسته نباشید خدمت شما دوست عزیز.
      کاراکتر \r در اصل کارتریج رو به اول خط برمیگردونه. این کاراکتر توی پرینتر های قدیمی استفاده میشده ولی الان زیاد دیگه استفاده ای نداره. کاراکتر \n ولی میره روی خط بعدی. معمولا برای رفتن به خط بعدی و رفتن به اول خط، از هردوی این کاراکتر ها در کنار هم استفاده میکنن.

  2. با سلام آقای خانقلی میخواستم بدونم تمامی کد های در آموزش هست در محیطAndroid_Studio زدین یا محیط Net_Beans و سوال بعدی اینکه محیط خاصی برای یاد گیر زبان java هست یا خیر ، یا مشه از IDE که اسم بردم استفاده کرد و کدام بهترین محیط هست با تشکر

    1. سلام خدمت شما آقا محمد عزیز.
      کدهای آموزش جاوا که توی این آموزش ها مشاهده میکنین برای راحتی کار توی محیط برنامه نویسی Eclipse نوشته شدن که کامپایلر جاوا داره و برای کارکردن جاوا معمولا از اون استفاده میشه. البته NetBeans هم بسیار قدرتمنده و میتونین از هرکدوم که راحت تر هستین استفاده کنین.
      اما اگر میخواین با استفاده از زبان جاوا برای اندروید برنامه نویسی کنین، حتما بهتون پیشنهاد میکنم بجز اندروید استودیو از IDE دیگه ای استفاده نکنین.
      همچنین این نکته رو هم خوبه بدونین که چون اندروید استودیو با استفاده از Gradle پروژه هایی که مینویسین رو تبدیل به اپلیکیشن میکنه، شما نمیتونین ازش برای تست کردن کدهای جاوا استفاده کنین. یا به زبون ساده تر بگم بهتون اجازه دسترسی مستقیم به کامپایلر جاوا رو نمیده. بهتره برای آموزش خود جاوا از اون دوتا اولی که گفتم استفاده کنین و برای اندروید از Android Studio.
      باز هم اگر سوالی بود در خدمتتون هستم.

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

اسکرول به بالا