نو

نویسه در Java

16 تمرین

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

نوع اولیه‌ی char در Java نمایشی ۱۶ بیتی از یک نویسه‌ی یونیکد است.

Note

نوع 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

کلاس Character

متدهای کتابخانه‌ای زیادی برای بررسی و دستکاری 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
Note

برخی از متدهای کلاس Character سربارگذاری شده‌اند تا بتوانند هم یک char بگیرند و هم یک int. برای نمونه، isDigit یک نسخه دارد که یک char می‌پذیرد و نسخه‌ی دیگر یک int. همان‌طور که پیش‌تر اشاره شد، نوع char تنها می‌تواند نویسه‌های بازه‌ی 0x0000 تا 0xFFFF را نمایش دهد. اما int می‌تواند همه‌ی نویسه‌ها را نمایش دهد؛ به همین دلیل هم نسخه‌های سربارگذاری‌شده‌ی int وجود دارند.

افزودن یک char به یک String

از عملگر + می‌توان برای افزودن یک char به یک String استفاده کرد.

'a' + " banana"     // => "a banana"
"banana " + 'a'     // => "banana a"
Caution

مراقب باشید که هرگز از + برای به هم چسباندن دو 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
ویرایش از طریق GitHub این پیوند در پنجره یا زبانه‌ی جدیدی باز می‌شود

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