Класс CharSequence
CharSequence - это интерфейс из пакета
java.lang, который описывает
последовательность символов. Он не является
классом, а задает общий контракт для всех
типов, которые можно представить как набор
символов: String, StringBuilder,
StringBuffer, CharBuffer и других.
Интерфейс определяет четыре основных метода:
length возвращает длину последовательности,
charAt возвращает символ по индексу,
subSequence возвращает часть
последовательности как новую CharSequence,
а toString преобразует последовательность
в строку. Начиная с Java 8 добавлен метод
chars, а с Java 11 - метод isEmpty.
Благодаря этому интерфейсу методы могут
принимать не только String, но и любую
последовательность символов, что делает код
более универсальным.
Синтаксис
public interface CharSequence
{
int length();
char charAt(int index);
CharSequence subSequence(int start, int end);
String toString();
default boolean isEmpty();
default IntStream chars();
default IntStream codePoints();
}
Класс String реализует этот интерфейс,
поэтому любую строку можно использовать там,
где ожидается CharSequence.
Пример
Давайте объявим переменную типа
CharSequence и присвоим ей строку,
а затем выведем ее длину и первый символ:
public class Main
{
public static void main(String[] args)
{
CharSequence seq = "abcde";
System.out.println(seq.length());
System.out.println(seq.charAt(0));
}
}
Результат выполнения кода:
5
'a'
Пример
Метод subSequence возвращает часть
последовательности. Давайте вырежем символы
с индекса 1 по 4 (конечный
индекс не входит):
public class Main
{
public static void main(String[] args)
{
CharSequence seq = "abcde";
CharSequence sub = seq.subSequence(1, 4);
System.out.println(sub);
}
}
Результат выполнения кода:
"bcd"
Пример
Класс StringBuilder тоже реализует
CharSequence. Давайте создадим
построитель строки и передадим его в метод,
принимающий интерфейс:
public class Main
{
public static void main(String[] args)
{
CharSequence seq = new StringBuilder("abcde");
System.out.println(seq.length());
System.out.println(seq.subSequence(0, 3));
}
}
Результат выполнения кода:
5
"abc"
Пример
Метод isEmpty проверяет, пуста ли
последовательность. Давайте проверим пустую
строку и строку из пробелов:
public class Main
{
public static void main(String[] args)
{
CharSequence empty = "";
CharSequence space = " ";
System.out.println(empty.isEmpty());
System.out.println(space.isEmpty());
}
}
Результат выполнения кода:
true
false
Смотрите также
-
класс
String,
который реализует CharSequence -
метод
length,
который возвращает длину последовательности -
метод
charAt,
который возвращает символ по индексу -
метод
subSequence,
который возвращает часть последовательности