Си

Символи у Java

16 вправ

Про концепцію Символи

Примітивний тип char у Java це 16-бітове представлення одного символу Unicode.

Note

Тип char ґрунтується на початковій специфікації Unicode, яка використовувала 16 бітів для представлення символів. Цього достатньо, щоб охопити більшість поширених літер і символи в діапазоні від 0x0000 до 0xFFFF. Відтоді специфікація розширила діапазон можливих символів до 0x01FFFF.

З кількох 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
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 (див. 4.2 Primitive Types and Values у Java Language Specification).

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

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

String builtString = builder.toString();
// => abc
Редагувати через GitHub Посилання відкривається в новому вікні або вкладці

Вивчити концепцію Символи