بیشتر اوقات، اگر از یک مقدار کاراکتری منفرد استفاده میکنید، از نوع Primitive char استفاده خواهید کرد. برای مثال:
char ch = 'a';
// یونیکد برای کاراکتر یونانی Omega بزرگ
char uniChar = '\u03A9';
// آرایهای از کاراکترها
char[] charArray = { 'a', 'b', 'c', 'd', 'e' };
با این حال، گاهی نیاز دارید char را بهعنوان شیء استفاده کنید — مثلاً بهعنوان آرگومان Method در جایی که شیء مورد انتظار است. زبان برنامهنویسی جاوا کلاس Wrapperای فراهم میکند که char را در یک شیء Character بستهبندی میکند. شیء از نوع Character شامل یک فیلد با نوع char است. این کلاس Character همچنین Methodهای مفید کلاسی (یعنی Static) زیادی برای دستکاری کاراکترها ارائه میدهد.
میتوانید شیء Character را با Constructor آن ایجاد کنید:
Character ch = new Character('a');
کامپایلر جاوا در برخی شرایط نیز شیء Character را برای شما ایجاد میکند. برای مثال، اگر یک char Primitive را به Methodای ارسال کنید که شیء میخواهد، کامپایلر char را بهطور خودکار به Character تبدیل میکند. به این قابلیت Autoboxing گفته میشود — یا Unboxing اگر تبدیل در جهت عکس انجام شود. برای اطلاعات بیشتر دربارهٔ Autoboxing و Unboxing، بخش Autoboxing and Unboxing را ببینید.
نکته: کلاسCharacterغیرقابل تغییر (Immutable) است. بنابراین پس از ایجاد، شیءCharacterنمیتواند تغییر کند.
جدول زیر برخی از مفیدترین Methodهای کلاس Character را فهرست میکند (فهرست کامل شامل بیش از ۵۰ Method در مشخصات API Character موجود است):
boolean isLetter(char ch) و boolean isDigit(char ch): مشخص میکند آیا مقدار char مشخصشده به ترتیب حرف یا رقم است.boolean isWhitespace(char ch): مشخص میکند آیا مقدار char مشخصشده فاصلهٔ خالی است.boolean isUpperCase(char ch) و boolean isLowerCase(char ch): مشخص میکند آیا مقدار char مشخصشده به ترتیب بزرگ یا کوچک است.char toUpperCase(char ch) و char toLowerCase(char ch): فرم بزرگ یا کوچک مقدار char مشخصشده را برمیگرداند.toString(char ch): شیء Stringای که مقدار کاراکتر مشخصشده را نمایش میدهد برمیگرداند — یعنی یک رشتهٔ تککاراکتره.پلتفرم جاوا از استاندارد یونیکد از JDK 1.0.2 پشتیبانی میکند. جدول زیر نسخههای پشتیبانیشده را بر اساس نسخهٔ JDK نشان میدهد:
| نسخهٔ Java | نسخهٔ Unicode |
|---|---|
| Java SE 26 | Unicode 17.0 |
| Java SE 24 | Unicode 16.0 |
| Java SE 22 | Unicode 15.1 |
| Java SE 20 | Unicode 15.0 |
| Java SE 19 | Unicode 14.0 |
| Java SE 15 | Unicode 13.0 |
| Java SE 13 | Unicode 12.1 |
| Java SE 12 | Unicode 11.0 |
| Java SE 11 | Unicode 10.0 |
| Java SE 9 | Unicode 8.0 |
| Java SE 8 | Unicode 6.2 |
| Java SE 7 | Unicode 6.0 |
| Java SE 5.0 | Unicode 4.0 |
| Java SE 1.4 | Unicode 3.0 |
| JDK 1.1 | Unicode 2.0 |
| JDK 1.0.2 | Unicode 1.1.5 |
نوع دادهٔ char و کلاس Character بر اساس مشخصات اصلی یونیکد هستند که کاراکترها را بهعنوان موجودیتهای با عرض ثابت ۱۶ بیت تعریف میکرد. استاندارد یونیکد از آن زمان تغییر کرده تا کاراکترهایی که نمایششان به بیش از ۱۶ بیت نیاز دارد را پوشش دهد. بازهٔ مجاز Code Pointها اکنون U+0000 تا U+10FFFF است که به آن Unicode Scalar Value گفته میشود.
مقدار char با ۱۶ بیت رمزگذاری شده و میتواند اعداد از 0x0000 تا 0xFFFF را نمایش دهد. این مجموعهٔ کاراکترها گاهی Basic Multilingual Plane (BMP) نامیده میشود. کاراکترهایی که Code Point آنها بزرگتر از 0xFFFF باشد Supplementary Characters نامیده میشوند.
بنابراین مقدار char نمایانگر Code Pointهای BMP و مقدار int نمایانگر تمام Code Pointهای یونیکد包括 Supplementary Code Pointها است. رفتار نسبت به کاراکترهای Supplementary و مقادیر Surrogate به این شکل است:
char میپذیرند نمیتوانند کاراکترهای Supplementary را پشتیبانی کنند. مقادیر char از بازههای Surrogate را بهعنوان کاراکترهای نامشخص در نظر میگیرند.int میپذیرند تمام کاراکترهای یونیکد شامل کاراکترهای Supplementary را پشتیبانی میکنند.برای اطلاعات بیشتر مستندات کلاس Character را مراجعه کنید.
کاراکتری که با یک خط اریب معکوس (\\) پیشوند شده باشد، یک Escape Sequence است و معنای خاصی برای کامپایلر دارد. جدول زیر Escape Sequenceهای جاوا را نشان میدهد:
| Escape Sequence | توضیح |
|---|---|
\\t | یک Tab در این نقطه از متن درج میکند. |
\\b | یک Backspace در این نقطه از متن درج میکند. |
\\n | یک خط جدید در این نقطه از متن درج میکند. |
\\r | یک Carriage Return در این نقطه از متن درج میکند. |
\\f | یک Form Feed در این نقطه از متن درج میکند. |
\\s | یک فاصله در این نقطه از متن درج میکند. |
\\' | یک کاراکتر نقل قول تکی در این نقطه از متن درج میکند. |
\\\" | یک کاراکتر نقل قول دوگانه در این نقطه از متن درج میکند. |
\\\\ | یک کاراکتر خط اریب معکوس در این نقطه از متن درج میکند. |
\\ به همراه یک Line Terminator | Line Terminator را در این نقطه از متن درج نمیکند. |
وقتی در یک دستور چاپ با Escape Sequence مواجه شوید، کامپایلر آن را بر این اساس تفسیر میکند. برای مثال، اگر بخواهید نقل قول داخل نقل قول بگذارید باید از Escape Sequence \\\" برای نقل قولهای داخلی استفاده کنید. برای چاپ جمله:
She said "Hello!" to me.
باید بنویسید:
IO.println("She said \"Hello!\" to me.");
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://dev.java/learn/