نوع اولیهی char در جاوا نمایشی ۱۶ بیتی از یک کاراکتر واحد است.
چندین char میتوانند یک رشته را تشکیل دهند، مثل "word"، یا میتوان charها را به صورت مستقل پردازش کرد.
یک char لیترال بین دو علامت نقلقول تک قرار میگیرد (مثلاً 'A').
char lowerA = 'a';
char upperB = 'B';
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
char به یک String
میتوان از عملگر + برای افزودن یک char به یک String استفاده کرد.
'a' + " banana" // => "a banana"
"banana " + 'a' // => "banana a"
مراقب باشید که از + برای چسباندن دو char به هم و ساختن یک String استفاده نکنید!
جمع کردن دو char به این شکل یک int به دست میدهد، نه یک String!
برای مثال:
'b' + 'c';
// => 197 (not the String "bc")
دلیلش این است که جاوا char را به int ارتقا میدهد (بخش ۴.۲ انواع اولیه و مقادیر از مشخصات زبان جاوا را ببینید).
اما وقتی کاراکترهای زیادی برای افزودن وجود دارد، استفاده از StringBuilder میتواند کارآمدتر باشد:
StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');
String builtString = builder.toString();
// => abc
در این تمرین، مجموعهای جزئی از توابع کمکی را پیادهسازی میکنید تا به یک برنامهنویس در پاکسازی اسمهای SqueakyClean کمک کنید.
در ۴ کار، بهتدریج متد clean را میسازید.
یک اسم معتبر SqueakyClean از صفر یا چند حرف و زیرخط تشکیل شده است.
در همهی حالتها تضمین شده است که رشتهی ورودی هرگز null نباشد. توجه کنید که متد clean باید رشتهی خالی را معتبر در نظر بگیرد.
متد (static) SqueakyClean.clean() را طوری پیادهسازی کنید که هر فاصله را با زیرخط جایگزین کند. این موضوع برای فاصلههای ابتدا و پایان رشته هم صدق میکند.
SqueakyClean.clean("my Id");
// => "my___Id"
متد (static) SqueakyClean.clean() را تغییر دهید تا kebab-case را به camelCase تبدیل کند.
SqueakyClean.clean("a-bc");
// => "aBc"
متد (static) SqueakyClean.clean() را تغییر دهید تا leetspeak را به متن معمولی تبدیل کند.
برای سادگی، فقط 4، 3، 0، 1 و 7 را بهترتیب با a، e، o، l و t جایگزین میکنیم.
SqueakyClean.clean("H3ll0 W0rld");
// => "Hello_World"
SqueakyClean.clean("4 73s7");
// => "a_test"
متد (static) SqueakyClean.clean() را تغییر دهید تا هر کاراکتری را که حرف نیست حذف کند.
SqueakyClean.clean("a$#.b");
// => "ab"