Треки
/
Java
Java
/
Вправи
/
Бездоганно чисто
Бездоганно чисто

Бездоганно чисто

Навчальна вправа

Вступ

Символи

Символи

Примітивний тип char у Java - це 16-бітове представлення одного символу. Кілька char можуть утворювати рядок тексту (англ. string), наприклад "word", або кожен char можна обробляти окремо. Літерал char записують в одинарних лапках (наприклад, 'A').

char lowerA = 'a';
char upperB = 'B';

Як отримати char зі String

Метод String.toCharArray повертає символи рядка тексту як масив. Як згадувалося в розділі про масиви, щоб перебрати масив, можна використати цикл 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")

Це тому, що Java підвищує char до int (див. 4.2 Примітивні типи та значення у специфікації мови Java).

Однак, коли треба додати багато символів, ефективніше скористатися StringBuilder:

StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');

String builtString = builder.toString();
// => abc

Вказівки

У цій вправі ми реалізуємо частину набору допоміжних процедур, які допомагають розробнику очищати імена SqueakyClean.

У цих 4 завданнях ми поступово побудуємо метод clean. Правильне імʼя SqueakyClean складається з нуля або більше літер і символів підкреслення.

У всіх випадках вхідний рядок тексту (англ. string) гарантовано не є null. Зауважмо, що метод clean має вважати порожній рядок тексту допустимим.

1. Заміна будь-яких пробілів на символи підкреслення

Реалізуйте (статичний) метод SqueakyClean.clean(), який замінює всі пробіли на символи підкреслення. Це стосується також пробілів на початку й у кінці.

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

2. Перетворення kebab-case на camelCase

Змініть (статичний) метод SqueakyClean.clean(), щоб він перетворював kebab-case на camelCase.

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

3. Перетворення leetspeak на звичайний текст

Змініть (статичний) метод 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. Відкидання символів, які не є літерами

Змініть (статичний) метод SqueakyClean.clean(), щоб він відкидав усі символи, які не є літерами.

SqueakyClean.clean("a$#.b");
// => "ab"
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці
Java Exercism

Час розпочати Бездоганно чисто?

Зареєструйтеся на Exercism, щоб вивчати й опановувати Java, а також 26 концепцій158 вправ та справжнє наставництво від людей, і все це безкоштовно.