در این مقاله ی آموزش، قصد داریم روش کار با کاراکترها در جاوا را آموزش دهیم و در قالب یک اپلیکیشن، توضیحاتی را در این زمینه ارائه دهیم. 


در فصل 2 آموختید که از نوع داده ی char برای نگهداری هر کاراکتر تکی، استفاده می شود. بعنوان مثال، از آن برای نگهداری حروف، اعداد و علائم نگارشی استفاده می شود. علاوه بر آن، نوع داده ی اولیه ی char، یک کلاس به نام Character نیز ارائه می دهد.

کلاس Character حاوی متدهای استانداردی برای تست کردن مقادیر کاراکترها می باشد. جدول 7.1 بسیاری از متدهای کلاس Character را توضیح می دهد. متدهایی که با "is" شروع می شوند، مانند isUpperCase() یک مقدار بولین را برمی گردانند که می تواند در دستورات مقایسه ای مورد استفاده قرار گیرد. متدهایی که با "to" آغاز می شوند، مانند toUpperCase()، یک کاراکتر را برمی گردانند که به یک فرمت اعلام شده، تبدیل شده است. 

(جدول 7.1 : متدهایی از کلاس Character که معمولاً مورد استفاده قرار می گیرند)

توضیح متد

بررسی می کند که آیا کاراکتر ما با حرف بزرگ نوشته شده است.

isUpperCase()

معادل آرگومان را با حروف بزرگ برمی گرداند. اگر آرگومان حروف کوچکی ندارد، تغییری ایجاد نمی کند. 

toUpperCase()

بررسی می کند که آیا کاراکتر با حرف کوچک نوشته شده است.

isLowerCase()

معادل آرگومان را با حروف کوچک برمی گرداند. اگر آرگومان حروف بزرگی ندارد، تغییری ایجاد نمی کند.

toLowerCase()

اگر آرگومان یک رقم(0-9) باشد، true را برمی گرداند و در غیر این صورت false را برمی گرداند. 

isDigit()

اگر آرگومان یک حرف(letter) باشد، true را برمی گرداند و در غیر این صورت false را برمی گرداند. 

isLetter()

اگر آرگومان یک حرف، یا یک رقم باشد، true را برمی گرداند؛ و در غیر این صورت false را برمی گرداند.

isLetterOrDigit()

اگر آرگومان یک فاصله ی سفید(whitespace) باشد، true را برمی گرداند و در غیر این صورت false را برمی گرداند. این فاصله ی سفید می تواند شامل space یا tab یا newline یا carriage return و form feed باشد. 

isWhitespace()

نکته: کلاس Character در java.lang تعریف شده است و به طور اتوماتیک، در هر برنامه ای که بنویسیم، اضافه(import) می شود. کلاس Character از java.lang.Object ارث بری(inherits from) می کند. هنگامی که در فصل "مقدمه ی وراثت" مفاهیم ارث بری را توضیح دادیم، نکات بیشتری در مورد ارث بری خواهید آموخت. 


تصویر 7.3 حاوی یک اپلیکیشن است که از بسیاری از متدهای نشان داده شده در جدول 7.1 استفاده می کند. این اپلیکیشن، از کاربر می خواهد تا یک کاراکتر را وارد کند. آنگاه یک رشته(String) دریافت می شود و از متد charAt() برای استخراج کاراکتر اول از رشته ی دریافت شده از کاربر، استفاده می شود. متد charAt() به کلاس String تعلق دارد. بعداً در این فصل، نکات بیشتری را در مورد این کلاس خواهید آموخت. این اپلیکیشن، خصوصیت های(attributes) کاراکتر را تعیین می کند و اطلاعاتی را در مورد آن نمایش می دهد. 

نکته: می توانیم بگوییم که هریک از متدهای کلاس Character که در اپلیکیشن TestCharacter در تصویر 7.3 به کار رفته اند، یک متد استاتیک هستند؛ زیرا نام متد بدون استفاده از یک مرجع آبجکت(object reference) به کار رفته است. یعنی تنها از نام کلاس و یک نقطه و سپس نام متد استفاده شده است. شما در فصل 3، نکاتی را در مورد تقاوت بین متدهای استاتیک(static) و متدهای نمونه(instance) آموخته اید. 

(تصویر 7.3 : اپلیکیشن TestCharacter)

کار با کاراکترها در جاوا و ایجاد یک اپلیکیشن

خروجی سه اجرای نمونه ی اپلیکیشن TestCharacter در تصویر 7.4 نشان داده شده است. بعنوان مثال، توجه کنید که وقتی کاراکتر "C" تست می شود، موارد زیر را مشاهده می کنیم:

  • مقدار برگردانده شده توسط متد isUpperCase() برابر با true است.
  • مقدار برگردانده شده توسط متد isLowerCase() برابر با false است.
  • مقدار برگردانده شده توسط متد toLowerCase() برابر با 'c' است. 
  • مقدار برگردانده شده توسط متد toUpperCase() برابر با 'C' است. 
  • مقدار برگردانده شده توسط متد isLetterOrDigit() برابر با true است. 
  • مقدار برگردانده شده توسط متد isWhitespace() برابر با false است. 

(تصویر 7.4 : سه اجرای نمونه از اپلیکیشن TestCharacter)

اجرای یک اپلیکیشن در کار با کاراکترها در جاوا


دو عبارت صحیح و یک عبارت اشتباه

موضوع: دستکاری کاراکترها در جاوا

1. Character یک کلاس است اما char یک نوع داده ی ساده است.

2. متد isLowerCase() که به کلاس Character تعلق دارد،بعنوان خروجی، هر نوع کاراکتری که با حروف بزرگ باشد را به کاراکتر کوچک تبدیل می کند و آن را برمی گرداند. 

3. اگر یک متغیر از نوع char مقدار یونیکد(Unicode)  را برای کلید Tab نگهداری کند، متد isWhitespace() برابر با true خواهد شد و متد isLetterOrDigit() برابر با false خواهد شد. 

پاسخ:

عبارت شماره 2 اشتباه است. متد isLowerCase() که به کلاس Character تعلق دارد، مقادیر true یا false را برمی گرداند؛ همان طور که متدهای کلاس Character که نام آنها با is شروع می شود، انجام می دهند.