مسیرها
/
Java
Java
/
تمرین‌ها
/
تمیز و برق‌زده
تمیز و برق‌زده

تمیز و برق‌زده

تمرین یادگیری

مقدمه

کاراکتر

کاراکتر

نوع اولیه‌ی 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"
Caution

مراقب باشید که از + برای چسباندن دو 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 باید رشته‌ی خالی را معتبر در نظر بگیرد.

1. هر فاصله‌ای را که دیدید با زیرخط جایگزین کنید

متد (static) SqueakyClean.clean() را طوری پیاده‌سازی کنید که هر فاصله را با زیرخط جایگزین کند. این موضوع برای فاصله‌های ابتدا و پایان رشته هم صدق می‌کند.

SqueakyClean.clean("my   Id");
// => "my___Id"

2. تبدیل kebab-case به camelCase

متد (static) SqueakyClean.clean() را تغییر دهید تا kebab-case را به camelCase تبدیل کند.

SqueakyClean.clean("a-bc");
// => "aBc"

3. تبدیل leetspeak به متن معمولی

متد (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"

4. حذف کاراکترهایی که حرف نیستند

متد (static) SqueakyClean.clean() را تغییر دهید تا هر کاراکتری را که حرف نیست حذف کند.

SqueakyClean.clean("a$#.b");
// => "ab"
ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Java Exercism

آماده‌اید تمیز و برق‌زده را شروع کنید؟

در Exercism ثبت‌نام کنید تا Java را همراه با 26 مفهوم158 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.