نوع اولیهی char در Java نمایشی ۱۶ بیتی از یک نویسهی یونیکد است.
نوع char بر پایهی مشخصات اصلی یونیکد است که از ۱۶ بیت برای نمایش نویسهها استفاده میکرد.
این مقدار برای پوشش بیشتر حروف رایج کافی است و نویسههای بازهی 0x0000 تا 0xFFFF را در بر میگیرد.
از آن زمان، این مشخصات بازهی نویسههای ممکن را تا 0x01FFFF گسترش داده است.
چندین char میتوانند یک رشته را تشکیل دهند، مانند "word"، یا میتوان charها را مستقل از هم پردازش کرد.
مقدار ثابت char را با کوتیشن تک احاطه میکنند (مثلاً 'A').
char lowerA = 'a';
char upperB = 'B';
charهای یک String
متد String.toCharArray نویسههای یک String را بهصورت یک آرایه برمیگرداند.
همانطور که در آرایه اشاره شد، میتوانید با یک حلقهی for روی آرایه پیمایش کنید.
String text = "Hello";
char[] asArray = text.toCharArray();
for (char ch: asArray) {
System.out.println(ch);
}
// Outputs:
// H
// e
// l
// l
// o
متدهای کتابخانهای زیادی برای بررسی و دستکاری charها وجود دارد.
این متدها را میتوان بهصورت متدهای استاتیک کلاس java.lang.Character یافت.
چند نمونه:
Character.isWhitespace(' '); // true
Character.isWhitespace('#'); // false
Character.isLetter('a'); // true
Character.isLetter('3'); // false
Character.isDigit('6'); // true
Character.isDigit('?'); // false
برخی از متدهای کلاس Character سربارگذاری شدهاند تا بتوانند هم یک char بگیرند و هم یک int.
برای نمونه، isDigit یک نسخه دارد که یک char میپذیرد و نسخهی دیگر یک int.
همانطور که پیشتر اشاره شد، نوع char تنها میتواند نویسههای بازهی 0x0000 تا 0xFFFF را نمایش دهد.
اما int میتواند همهی نویسهها را نمایش دهد؛ به همین دلیل هم نسخههای سربارگذاریشدهی int وجود دارند.
char به یک String
از عملگر + میتوان برای افزودن یک char به یک String استفاده کرد.
'a' + " banana" // => "a banana"
"banana " + 'a' // => "banana a"
مراقب باشید که هرگز از + برای به هم چسباندن دو char و ساختن یک String استفاده نکنید!
جمع کردن دو char به این روش یک int به دست میدهد، نه یک String!
برای نمونه:
'b' + 'c';
// => 197 (not the String "bc")
دلیلش این است که Java نوع char را به int ارتقا میدهد (به بخش ۴.۲ انواع و مقادیر اولیه از مشخصات زبان Java نگاه کنید).
اما وقتی نویسههای زیادی برای افزودن وجود دارد، ممکن است استفاده از StringBuilder بهجای آن کارآمدتر باشد:
StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');
String builtString = builder.toString();
// => abc