Примітивний тип 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
У бібліотеці є багато вбудованих методів для перевірки та обробки значень 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")
Це тому, що 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 має вважати порожній рядок тексту допустимим.
Реалізуйте (статичний) метод SqueakyClean.clean(), який замінює всі пробіли на символи підкреслення. Це стосується також пробілів на початку й у кінці.
SqueakyClean.clean("my Id");
// => "my___Id"
Змініть (статичний) метод SqueakyClean.clean(), щоб він перетворював kebab-case на camelCase.
SqueakyClean.clean("a-bc");
// => "aBc"
Змініть (статичний) метод 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"
Змініть (статичний) метод SqueakyClean.clean(), щоб він відкидав усі символи, які не є літерами.
SqueakyClean.clean("a$#.b");
// => "ab"
Зареєструйтеся на Exercism, щоб вивчати й опановувати Java, а також 26 концепцій158 вправ та справжнє наставництво від людей, і все це безкоштовно.