Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

String.codePoints()

Возвращает поток кодов символов Unicode. В отличие от chars(), эмодзи считается одним символом.

Доступно с: Java 9

Синтаксис

public IntStream codePoints()

Возвращаемое значение

IntStreamIntStream с кодом каждого символа.

Примеры

length() считает единицы char, а codePoints() — настоящие символы:

void main() {
    String text = "Hi😀";
    IO.println(text.length());
    IO.println(text.codePoints().count());
    IO.println(text.codePointCount(0, text.length()));
}

Результат:

4
3
3

Каждый символ и его код в виде U+XXXX:

void main() {
    "A€😀".codePoints().forEach(cp ->
        IO.println(Character.toString(cp) + " U+" + Integer.toHexString(cp).toUpperCase()));
}

Результат:

A U+41
€ U+20AC
😀 U+1F600

Примечания

Тип char хранит 16 бит, а символы за пределами основной плоскости Unicode (эмодзи, редкие иероглифы) занимают два char — суррогатную пару. chars() выдаёт эти половинки по отдельности, codePoints() — целый символ. Код превращают обратно в строку через Character.toString(cp) или new StringBuilder().appendCodePoint(cp). codePointAt(i) возвращает код символа, начинающегося с индекса i.

См. также

  • String.chars() — Возвращает поток кодов символов строки.
  • String.length() — Возвращает количество символов в строке.
  • Character.isDigit() — Проверяет, является ли символ цифрой. Рядом — isLetter(), isWhitespace(), isUpperCase().
  • StringBuilder.reverse() — Переворачивает содержимое StringBuilder задом наперёд.

В учебнике

  • Методы строк — Основные методы String в Java: поиск, substring, смена регистра, strip, replace, split, join, repeat и проверки строк.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.