Spec-Zone.ru › OpenJDK 25

Класс String

java.lang.Object
java.lang.String
Все реализуемые интерфейсы:
Serializable, CharSequence, Comparable<String>, Constable, ConstantDesc
public final class String extends Object implements Serializable, Comparable<String>, CharSequence, Constable, ConstantDesc
Класс String представляет строки символов. Все строковые литералы в программах на Java, например "abc", реализованы как экземпляры этого класса.

Строки являются константами: их значения нельзя изменить после создания. Буферы строк поддерживают изменяемые строки. Поскольку объекты String неизменяемы, ими можно совместно пользоваться. Например:

    String str = "abc";

эквивалентно:

    char data[] = {'a', 'b', 'c'};
    String str = new String(data);

Вот ещё несколько примеров использования строк:

    System.out.println("abc");
    String cde = "cde";
    System.out.println("abc" + cde);
    String c = "abc".substring(2, 3);
    String d = cde.substring(1, 2);

Класс String включает методы для проверки отдельных символов последовательности, сравнения строк, поиска в строках, извлечения подстрок и создания копии строки, в которой все символы преобразованы в верхний или нижний регистр. Преобразование регистра основано на версии стандарта Unicode, указанной в классе Character.

Язык Java обеспечивает специальную поддержку оператора конкатенации строк ( + ) и преобразования других объектов в строки. Дополнительные сведения о конкатенации строк и преобразовании см. в Спецификации языка Java.

Если не указано иное, передача аргумента null конструктору или методу этого класса приведёт к выбрасыванию исключения NullPointerException.

Объект String представляет строку в формате UTF-16, в котором дополнительные символы представлены суррогатными парами (дополнительные сведения см. в разделе Представления символов Unicode класса Character). Значения индексов относятся к кодовым единицам char, поэтому дополнительный символ занимает две позиции в String.

Класс String предоставляет методы для работы с кодовыми точками Unicode (то есть символами), а также методы для работы с кодовыми единицами Unicode (то есть значениями char).

Если не указано иное, методы сравнения строк не учитывают локаль. Класс Collator предоставляет методы для более точного сравнения строк с учётом локали.

Примечание по реализации:
Реализация оператора конкатенации строк остаётся на усмотрение компилятора Java при условии, что компилятор в конечном итоге соответствует Спецификации языка Java. Например, компилятор javac может реализовать оператор с помощью StringBuffer, StringBuilder или java.lang.invoke.StringConcatFactory в зависимости от версии JDK. Преобразование в строку обычно выполняется методом toString, определённым в Object и наследуемым всеми классами Java.
См. Спецификацию языка Java:
15.18.1 Оператор конкатенации строк +
Начиная с версии:
1.0
См. также:
  • Object.toString()
  • StringBuffer
  • StringBuilder
  • Charset
  • Сериализованная форма

Краткое описание полей

Модификатор и тип Поле Описание
static final Comparator<String> CASE_INSENSITIVE_ORDER
Компаратор, упорядочивающий объекты String так же, как метод compareToIgnoreCase.

Краткое описание конструкторов

Конструктор Описание
String()
Инициализирует только что созданный объект String так, чтобы он представлял пустую последовательность символов.
String(byte[] bytes)
Создаёт новый String, декодируя указанный массив байтов с помощью default charset.
String(byte[] ascii, int hibyte)
Устарел.
Этот метод некорректно преобразует байты в символы.
String(byte[] bytes, int offset, int length)
Создаёт новый String, декодируя указанную часть массива байтов с помощью default charset.
String(byte[] ascii, int hibyte, int offset, int count)
Устарел.
Этот метод некорректно преобразует байты в символы.
String(byte[] bytes, int offset, int length, String charsetName)
Создаёт новый String, декодируя указанную часть массива байтов с помощью указанной кодировки.
String(byte[] bytes, int offset, int length, Charset charset)
Создаёт новый String, декодируя указанную часть массива байтов с помощью указанной кодировки.
String(byte[] bytes, String charsetName)
Создаёт новый String, декодируя указанный массив байтов с помощью указанной кодировки.
String(byte[] bytes, Charset charset)
Создаёт новый String, декодируя указанный массив байтов с помощью указанной кодировки.
String(char[] value)
Создаёт новый String, представляющий последовательность символов, содержащуюся в данный момент в аргументе — массиве символов.
String(char[] value, int offset, int count)
Создаёт новый String, содержащий символы из части массива символов, переданного в качестве аргумента.
String(int[] codePoints, int offset, int count)
Создаёт новый String, содержащий символы из части массива кодовых точек Unicode, переданного в качестве аргумента.
String(String original)
Инициализирует только что созданный объект String так, чтобы он представлял ту же последовательность символов, что и аргумент; другими словами, вновь созданная строка является копией строки-аргумента.
String(StringBuffer buffer)
Создаёт новую строку, содержащую последовательность символов, которая в данный момент находится в буфере строк, переданном в качестве аргумента.
String(StringBuilder builder)
Создаёт новую строку, содержащую последовательность символов, которая в данный момент находится в конструкторе строк, переданном в качестве аргумента.

Краткое описание методов

Модификатор и тип Метод Описание
char charAt(int index)
Возвращает значение char по указанному индексу.
IntStream chars()
Возвращает поток значений int, расширяющий нулями значения char из этой последовательности.
int codePointAt(int index)
Возвращает символ (кодовую точку Unicode) по указанному индексу.
int codePointBefore(int index)
Возвращает символ (кодовую точку Unicode) перед указанным индексом.
int codePointCount(int beginIndex, int endIndex)
Возвращает количество кодовых точек Unicode в указанном текстовом диапазоне этого String.
IntStream codePoints()
Возвращает поток значений кодовых точек из этой последовательности.
int compareTo(String anotherString)
Сравнивает две строки лексикографически.
int compareToIgnoreCase(String str)
Сравнивает две строки лексикографически без учёта регистра.
String concat(String str)
Добавляет указанную строку в конец этой строки.
boolean contains(CharSequence s)
Возвращает true тогда и только тогда, когда эта строка содержит указанную последовательность значений char.
boolean contentEquals(CharSequence cs)
Сравнивает эту строку с указанным CharSequence.
boolean contentEquals(StringBuffer sb)
Сравнивает эту строку с указанным StringBuffer.
static String copyValueOf(char[] data)
Эквивалентно valueOf(char[]).
static String copyValueOf(char[] data, int offset, int count)
Эквивалентно valueOf(char[], int, int).
Optional<String> describeConstable()
Возвращает Optional, содержащий номинальный дескриптор этого экземпляра, которым является сам экземпляр.
boolean endsWith(String suffix)
Проверяет, заканчивается ли эта строка указанным суффиксом.
boolean equals(Object anObject)
Сравнивает эту строку с указанным объектом.
boolean equalsIgnoreCase(String anotherString)
Сравнивает этот String с другим String без учёта регистра.
static String format(String format, Object... args)
Возвращает строку, отформатированную с использованием указанной строки формата и аргументов.
static String format(Locale l, String format, Object... args)
Возвращает строку, отформатированную с использованием указанной локали, строки формата и аргументов.
String formatted(Object... args)
Форматирует с использованием этой строки в качестве строки формата и переданных аргументов.
byte[] getBytes()
Кодирует этот String в последовательность байтов с помощью default charset и сохраняет результат в новом массиве байтов.
void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
Устарел.
Этот метод некорректно преобразует символы в байты.
byte[] getBytes(String charsetName)
Кодирует этот String в последовательность байтов с использованием кодировки с указанным именем и сохраняет результат в новом массиве байтов.
byte[] getBytes(Charset charset)
Кодирует этот String в последовательность байтов с помощью заданной кодировки и сохраняет результат в новом массиве байтов.
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Копирует символы из этой последовательности в указанный массив назначения.
int hashCode()
Возвращает хеш-код этой строки.
String indent(int n)
Изменяет отступ каждой строки этой строки на основе значения n и нормализует символы завершения строк.
int indexOf(int ch)
Возвращает индекс первого вхождения указанного символа в этой строке.
int indexOf(int ch, int fromIndex)
Возвращает индекс первого вхождения указанного символа в этой строке, начиная поиск с указанного индекса.
int indexOf(int ch, int beginIndex, int endIndex)
Возвращает индекс первого вхождения указанного символа в этой строке, начиная поиск с beginIndex и останавливаясь перед endIndex.
int indexOf(String str)
Возвращает индекс первого вхождения указанной подстроки в этой строке.
int indexOf(String str, int fromIndex)
Возвращает индекс первого вхождения указанной подстроки в этой строке, начиная с указанного индекса.
int indexOf(String str, int beginIndex, int endIndex)
Возвращает индекс первого вхождения указанной подстроки в заданном диапазоне индексов строки this.
String intern()
Возвращает каноническое представление объекта-строки.
boolean isBlank()
Возвращает true, если строка пуста или содержит только кодовые точки пробельных символов; в противном случае возвращает false.
boolean isEmpty()
Возвращает true тогда и только тогда, когда length() равно 0.
static String join(CharSequence delimiter, CharSequence... elements)
Возвращает новую строку, составленную из копий CharSequence elements, соединённых с копией указанного delimiter.
static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
Возвращает новый String, составленный из копий CharSequence elements, соединённых с копией указанного delimiter.
int lastIndexOf(int ch)
Возвращает индекс последнего вхождения указанного символа в этой строке.
int lastIndexOf(int ch, int fromIndex)
Возвращает индекс последнего вхождения указанного символа в этой строке, выполняя поиск в обратном направлении, начиная с указанного индекса.
int lastIndexOf(String str)
Возвращает индекс последнего вхождения указанной подстроки в этой строке.
int lastIndexOf(String str, int fromIndex)
Возвращает индекс последнего вхождения указанной подстроки в этой строке, выполняя поиск в обратном направлении, начиная с указанного индекса.
int length()
Возвращает длину этой строки.
Stream<String> lines()
Возвращает поток строк, извлечённых из этой строки и разделённых символами завершения строк.
boolean matches(String regex)
Проверяет, соответствует ли эта строка заданному регулярному выражению.
int offsetByCodePoints(int index, int codePointOffset)
Возвращает индекс в этом String, смещённый относительно заданного index на codePointOffset кодовых точек.
boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
Проверяет, равны ли две области строк.
boolean regionMatches(int toffset, String other, int ooffset, int len)
Проверяет, равны ли две области строк.
String repeat(int count)
Возвращает строку, значение которой является результатом повторения этой строки count раз.
String replace(char oldChar, char newChar)
Возвращает строку, полученную заменой всех вхождений oldChar в этой строке на newChar.
String replace(CharSequence target, CharSequence replacement)
Заменяет каждую подстроку этой строки, совпадающую с указанной буквальной целевой последовательностью, указанной буквальной последовательностью-заменой.
String replaceAll(String regex, String replacement)
Заменяет каждую подстроку этой строки, соответствующую заданному регулярному выражению, указанной строкой замены.
String replaceFirst(String regex, String replacement)
Заменяет первую подстроку этой строки, соответствующую заданному регулярному выражению, указанной строкой замены.
String resolveConstantDesc(MethodHandles.Lookup lookup)
Разрешает этот экземпляр как ConstantDesc; результатом является сам экземпляр.
String[] split(String regex)
Разбивает эту строку на части по совпадениям с заданным регулярным выражением.
String[] split(String regex, int limit)
Разбивает эту строку на части по совпадениям с заданным регулярным выражением.
String[] splitWithDelimiters(String regex, int limit)
Разбивает эту строку на части по совпадениям с заданным регулярным выражением и возвращает как строки, так и совпавшие разделители.
boolean startsWith(String prefix)
Проверяет, начинается ли эта строка с указанного префикса.
boolean startsWith(String prefix, int toffset)
Проверяет, начинается ли подстрока этой строки, начиная с указанного индекса, с заданного префикса.
String strip()
Возвращает строку со значением этой строки, удалив все начальные и конечные пробельные символы.
String stripIndent()
Возвращает строку со значением этой строки, удалив незначащие пробельные символы в начале и конце каждой строки.
String stripLeading()
Возвращает строку со значением этой строки, удалив все начальные пробельные символы.
String stripTrailing()
Возвращает строку со значением этой строки, удалив все конечные пробельные символы.
CharSequence subSequence(int beginIndex, int endIndex)
Возвращает последовательность символов, являющуюся подпоследовательностью этой последовательности.
String substring(int beginIndex)
Возвращает строку, являющуюся подстрокой этой строки.
String substring(int beginIndex, int endIndex)
Возвращает строку, являющуюся подстрокой этой строки.
char[] toCharArray()
Преобразует эту строку в новый массив символов.
String toLowerCase()
Преобразует все символы этого String в нижний регистр согласно правилам локали по умолчанию.
String toLowerCase(Locale locale)
Преобразует все символы этого String в нижний регистр согласно правилам указанной Locale.
String toString()
Этот объект (который уже является строкой!)
String toUpperCase()
Преобразует все символы этого String в верхний регистр согласно правилам локали по умолчанию.
String toUpperCase(Locale locale)
Преобразует все символы этого String в верхний регистр согласно правилам указанной Locale.
<R> R transform(Function<? super String, ? extends R> f)
Этот метод позволяет применить функцию к строке this.
String translateEscapes()
Возвращает строку со значением этой строки, в которой escape-последовательности преобразованы так же, как в строковом литерале.
String trim()
Возвращает строку со значением этой строки, удалив все начальные и конечные пробелы; пробелом считается любой символ, кодовая точка которого меньше или равна 'U+0020' (символ пробела).
static String valueOf(boolean b)
Возвращает строковое представление аргумента boolean.
static String valueOf(char c)
Возвращает строковое представление аргумента char.
static String valueOf(char[] data)
Возвращает строковое представление аргумента — массива char.
static String valueOf(char[] data, int offset, int count)
Возвращает строковое представление указанной части массива char.
static String valueOf(double d)
Возвращает строковое представление аргумента double.
static String valueOf(float f)
Возвращает строковое представление аргумента float.
static String valueOf(int i)
Возвращает строковое представление аргумента int.
static String valueOf(long l)
Возвращает строковое представление аргумента long.
static String valueOf(Object obj)
Возвращает строковое представление аргумента Object.

Методы, объявленные в классе Object

clone, finalize, getClass, notify, notifyAll, wait, wait, wait

Подробное описание полей

CASE_INSENSITIVE_ORDER

public static final Comparator<String> CASE_INSENSITIVE_ORDER
Компаратор, упорядочивающий объекты String так же, как метод compareToIgnoreCase. Этот компаратор сериализуем.

Обратите внимание, что этот компаратор не учитывает локаль, поэтому для некоторых локалей результат упорядочивания будет неудовлетворительным. Класс Collator предоставляет сравнение с учетом локали.

Начиная с:
1.2
См. также:
  • Collator

Подробное описание конструкторов

String

public String()
Инициализирует вновь созданный объект String так, чтобы он представлял пустую последовательность символов. Обратите внимание, что использовать этот конструктор не требуется, поскольку строки неизменяемы.

String

public String(String original)
Инициализирует вновь созданный объект String так, чтобы он представлял ту же последовательность символов, что и аргумент; иными словами, вновь созданная строка является копией строки-аргумента. Если явная копия original не требуется, использовать этот конструктор не нужно, поскольку строки неизменяемы.
Параметры:
original — String

String

public String(char[] value)
Выделяет память для новой String, представляющей последовательность символов, содержащуюся в данный момент в массиве символов-аргументе. Содержимое массива символов копируется; последующее изменение массива символов не влияет на вновь созданную строку.

Содержимое строки не определено, если массив символов изменяется во время создания строки.

Параметры:
value — начальное значение строки

String

public String(char[] value, int offset, int count)
Выделяет память для новой String, содержащей символы из подмассива массива символов-аргумента. Аргумент offset — индекс первого символа подмассива, а аргумент count задает длину подмассива. Содержимое подмассива копируется; последующее изменение массива символов не влияет на вновь созданную строку.

Содержимое строки не определено, если массив символов изменяется во время создания строки.

Параметры:
value — массив, являющийся источником символов
offset — начальное смещение
count — длина
Исключения:
IndexOutOfBoundsException — если offset отрицательно, count отрицательно или offset больше value.length - count

String

public String(int[] codePoints, int offset, int count)
Выделяет память для новой String, содержащей символы из подмассива массива кодовых точек Unicode, переданного в качестве аргумента. Аргумент offset — индекс первой кодовой точки подмассива, а аргумент count задает длину подмассива. Содержимое подмассива преобразуется в char; последующее изменение массива int не влияет на вновь созданную строку.

Содержимое строки не определено, если массив кодовых точек изменяется во время создания строки.

Параметры:
codePoints — массив, являющийся источником кодовых точек Unicode
offset — начальное смещение
count — длина
Исключения:
IllegalArgumentException — если в codePoints обнаружена недопустимая кодовая точка Unicode
IndexOutOfBoundsException — если offset отрицательно, count отрицательно или offset больше codePoints.length - count
Начиная с:
1.5

String

@Deprecated(since="1.1") public String(byte[] ascii, int hibyte, int offset, int count)
Устарело.
Этот метод некорректно преобразует байты в символы. Начиная с JDK 1.1, для этого рекомендуется использовать конструкторы String, принимающие Charset или имя кодировки, либо использующие default charset.
Выделяет память для новой String, создаваемой из подмассива массива 8-битных целых значений.

Аргумент offset — индекс первого байта подмассива, а аргумент count задает длину подмассива.

Каждый byte в подмассиве преобразуется в char, как указано в конструкторе String(byte[],int).

Содержимое строки не определено, если массив байтов изменяется во время создания строки.

Параметры:
ascii — байты, преобразуемые в символы
hibyte — старшие 8 бит каждой 16-битной кодовой единицы Unicode
offset — начальное смещение
count — длина
Исключения:
IndexOutOfBoundsException — если offset отрицательно, count отрицательно или offset больше ascii.length - count
См. также:
  • String(byte[], int)
  • String(byte[], int, int, java.lang.String)
  • String(byte[], int, int, java.nio.charset.Charset)
  • String(byte[], int, int)
  • String(byte[], java.lang.String)
  • String(byte[], java.nio.charset.Charset)
  • String(byte[])

String

@Deprecated(since="1.1") public String(byte[] ascii, int hibyte)
Устарело.
Этот метод некорректно преобразует байты в символы. Начиная с JDK 1.1, для этого рекомендуется использовать конструкторы String, принимающие Charset или имя кодировки, либо использующие default charset.
Выделяет память для новой String, содержащей символы, созданные из массива 8-битных целых значений. Каждый символ c в результирующей строке создается из соответствующего элемента b массива байтов следующим образом:
    c == (char)(((hibyte & 0xff) << 8)
                        | (b & 0xff))

Содержимое строки не определено, если массив байтов изменяется во время создания строки.

Параметры:
ascii — байты, преобразуемые в символы
hibyte — старшие 8 бит каждой 16-битной кодовой единицы Unicode
См. также:
  • String(byte[], int, int, java.lang.String)
  • String(byte[], int, int, java.nio.charset.Charset)
  • String(byte[], int, int)
  • String(byte[], java.lang.String)
  • String(byte[], java.nio.charset.Charset)
  • String(byte[])

String

public String(byte[] bytes, int offset, int length, String charsetName) throws UnsupportedEncodingException
Создает новую String, декодируя указанный подмассив байтов с помощью указанной кодировки. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной подмассива.

Поведение этого конструктора, если переданные байты недопустимы в указанной кодировке, не определено. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.

Содержимое строки не определено, если массив байтов изменяется во время создания строки.

Параметры:
bytes — байты, декодируемые в символы
offset — индекс первого декодируемого байта
length — количество декодируемых байтов
charsetName — имя поддерживаемой кодировки
Исключения:
UnsupportedEncodingException — если кодировка с указанным именем не поддерживается
IndexOutOfBoundsException — если offset отрицательно, length отрицательно или offset больше bytes.length - length
Начиная с:
1.1

String

public String(byte[] bytes, int offset, int length, Charset charset)
Создает новую String, декодируя указанный подмассив байтов с помощью указанной кодировки. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной подмассива.

Этот метод всегда заменяет последовательности некорректных входных данных и несопоставимых символов строкой замены, используемой по умолчанию для этой кодировки. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.

Содержимое строки не определено, если массив байтов изменяется во время создания строки.

Параметры:
bytes — байты, декодируемые в символы
offset — индекс первого декодируемого байта
length — количество декодируемых байтов
charset — кодировка, используемая для декодирования bytes
Исключения:
IndexOutOfBoundsException — если offset отрицательно, length отрицательно или offset больше bytes.length - length
Начиная с:
1.6

String

public String(byte[] bytes, String charsetName) throws UnsupportedEncodingException
Создает новую String, декодируя указанный массив байтов с помощью указанной кодировки. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной массива байтов.

Поведение этого конструктора, если переданные байты недопустимы в указанной кодировке, не определено. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.

Содержимое строки не определено, если массив байтов изменяется во время создания строки.

Параметры:
bytes — байты, декодируемые в символы
charsetName — имя поддерживаемой кодировки
Исключения:
UnsupportedEncodingException — если кодировка с указанным именем не поддерживается
Начиная с:
1.1

String

public String(byte[] bytes, Charset charset)
Создает новую String, декодируя указанный массив байтов с помощью указанной кодировки. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной массива байтов.

Этот метод всегда заменяет последовательности некорректных входных данных и несопоставимых символов строкой замены, используемой по умолчанию для этой кодировки. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.

Содержимое строки не определено, если массив байтов изменяется во время создания строки.

Параметры:
bytes — байты, декодируемые в символы
charset — кодировка, используемая для декодирования bytes
Начиная с:
1.6

String

public String(byte[] bytes, int offset, int length)
Создает новую String, декодируя указанный подмассив байтов с помощью default charset. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной подмассива.

Поведение этого конструктора, если переданные байты недопустимы в используемой по умолчанию кодировке, не определено. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.

Содержимое строки не определено, если массив байтов изменяется во время создания строки.

Параметры:
bytes — байты, декодируемые в символы
offset — индекс первого декодируемого байта
length — количество декодируемых байтов
Исключения:
IndexOutOfBoundsException — если offset отрицательно, length отрицательно или offset больше bytes.length - length
Начиная с:
1.1

String

public String(byte[] bytes)
Создает новую String, декодируя указанный массив байтов с помощью default charset. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной массива байтов.

Поведение этого конструктора, если переданные байты недопустимы в используемой по умолчанию кодировке, не определено. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.

Содержимое строки не определено, если массив байтов изменяется во время создания строки.

Параметры:
bytes — байты, декодируемые в символы
Начиная с:
1.1

String

public String(StringBuffer buffer)
Выделяет память для новой строки, содержащей последовательность символов, которая в данный момент находится в буфере строк-аргументе. Содержимое буфера строк копируется; последующее изменение буфера строк не влияет на вновь созданную строку.
Параметры:
buffer — StringBuffer

String

public String(StringBuilder builder)
Выделяет память для новой строки, содержащей последовательность символов, которая в данный момент находится в конструкторе строк-аргументе. Содержимое конструктора строк копируется; последующее изменение конструктора строк не влияет на вновь созданную строку.

Содержимое строки не определено, если StringBuilder изменяется во время создания строки.

Этот конструктор предоставлен для упрощения перехода на StringBuilder. Получение строки из конструктора строк с помощью метода toString, вероятно, будет выполняться быстрее и обычно является предпочтительным способом.

Параметры:
builder — StringBuilder
Начиная с:
1.5

Подробное описание методов

length

public int length()
Возвращает длину этой строки. Длина равна количеству кодовых единиц Unicode в строке.
Определено в:
length в интерфейсе CharSequence
Возвращает:
длину последовательности символов, представленной этим объектом.

isEmpty

public boolean isEmpty()
Возвращает true тогда и только тогда, когда length() равно 0.
Определено в:
isEmpty в интерфейсе CharSequence
Примечание к API:
Чтобы определить, содержит ли строка только пробельные символы, используйте isBlank.
Возвращает:
true, если length() равно 0, иначе false
Начиная с:
1.6

charAt

public char charAt(int index)
Возвращает значение char по указанному индексу. Диапазон индексов — от 0 до length() - 1. Первое значение char последовательности находится по индексу 0, следующее — по индексу 1 и так далее, как при индексировании массива.

Если указанное индексом значение char является суррогатом, возвращается значение суррогата.

Определено в:
charAt в интерфейсе CharSequence
Параметры:
index — индекс значения char.
Возвращает:
значение char по указанному индексу этой строки. Первое значение char находится по индексу 0.
Исключения:
IndexOutOfBoundsException — если аргумент index отрицателен или не меньше длины этой строки.

codePointAt

public int codePointAt(int index)
Возвращает символ (кодовую точку Unicode) по указанному индексу. Индекс относится к значениям char (кодовым единицам Unicode) и находится в диапазоне от 0 до length() - 1.

Если значение char, указанное по заданному индексу, находится в диапазоне старших суррогатов, следующий индекс меньше длины этой String, а значение char по следующему индексу находится в диапазоне младших суррогатов, возвращается дополнительная кодовая точка, соответствующая этой суррогатной паре. В противном случае возвращается значение char по заданному индексу.

Параметры:
index — индекс значения char
Возвращает:
значение кодовой точки символа по index
Исключения:
IndexOutOfBoundsException — если аргумент index отрицателен или не меньше длины этой строки.
Начиная с:
1.5

codePointBefore

public int codePointBefore(int index)
Возвращает символ (кодовую точку Unicode) перед указанным индексом. Индекс относится к значениям char (кодовым единицам Unicode) и находится в диапазоне от 1 до length.

Если значение char по индексу (index - 1) находится в диапазоне младших суррогатов, (index - 2) неотрицательно, а значение char по индексу (index - 2) находится в диапазоне старших суррогатов, возвращается значение дополнительной кодовой точки этой суррогатной пары. Если значение char по индексу index - 1 является непарным младшим или старшим суррогатом, возвращается значение суррогата.

Параметры:
index — индекс, следующий за кодовой точкой, которую нужно вернуть
Возвращает:
значение кодовой точки Unicode перед заданным индексом.
Исключения:
IndexOutOfBoundsException — если аргумент index меньше 1 или больше длины этой строки.
Начиная с:
1.5

codePointCount

public int codePointCount(int beginIndex, int endIndex)
Возвращает количество кодовых точек Unicode в указанном диапазоне текста этой String. Диапазон текста начинается с указанного beginIndex и заканчивается char по индексу endIndex - 1. Таким образом, длина диапазона текста (в char) равна endIndex-beginIndex. Непарные суррогаты внутри диапазона текста считаются одной кодовой точкой каждый.
Параметры:
beginIndex — индекс первого char диапазона текста.
endIndex — индекс после последнего char диапазона текста.
Возвращает:
количество кодовых точек Unicode в указанном диапазоне текста
Исключения:
IndexOutOfBoundsException — если beginIndex отрицательно, endIndex больше длины этой String или beginIndex больше endIndex.
Начиная с:
1.5

offsetByCodePoints

public int offsetByCodePoints(int index, int codePointOffset)
Возвращает индекс в этой String, смещенный относительно заданного index на codePointOffset кодовых точек. Непарные суррогаты в диапазоне текста, заданном index и codePointOffset, считаются одной кодовой точкой каждый.
Параметры:
index — индекс, который нужно сместить
codePointOffset — смещение в кодовых точках
Возвращает:
индекс в этой String
Исключения:
IndexOutOfBoundsException — если index отрицательно или больше длины этой String, либо если codePointOffset положительно и подстрока, начинающаяся с index, содержит меньше codePointOffset кодовых точек, либо если codePointOffset отрицательно и подстрока перед index содержит меньше кодовых точек, чем абсолютное значение codePointOffset.
Начиная с:
1.5

getChars

public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Копирует символы из этой последовательности в указанный целевой массив. Первый копируемый символ находится по индексу srcBegin; последний копируемый символ — по индексу srcEnd-1. Общее количество копируемых символов равно srcEnd-srcBegin. Символы копируются в подмассив dst, начиная с индекса dstBegin и заканчивая индексом:
dstbegin + (srcEnd-srcBegin) - 1
Определено в:
getChars в интерфейсе CharSequence
Параметры:
srcBegin — начать копирование с этого смещения.
srcEnd — остановить копирование на этом смещении.
dst — массив, в который копируются данные.
dstBegin — смещение в dst.
Исключения:
IndexOutOfBoundsException — если выполняется любое из следующих условий:
  • srcBegin отрицательно
  • dstBegin отрицательно
  • аргумент srcBegin больше аргумента srcEnd.
  • srcEnd больше this.length().
  • dstBegin+srcEnd-srcBegin больше dst.length

getBytes

@Deprecated(since="1.1") public void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
Устарело.
Этот метод некорректно преобразует символы в байты. Начиная с JDK 1.1, для этого рекомендуется использовать метод getBytes(), который использует default charset.
Копирует символы из этой строки в целевой массив байтов. Каждый байт получает 8 младших битов соответствующего символа. Восемь старших битов каждого символа не копируются и никак не участвуют в передаче.

Первый копируемый символ находится по индексу srcBegin; последний копируемый символ — по индексу srcEnd-1. Общее количество копируемых символов равно srcEnd-srcBegin. Символы, преобразованные в байты, копируются в подмассив dst, начиная с индекса dstBegin и заканчивая индексом:

    dstBegin + (srcEnd-srcBegin) - 1
Параметры:
srcBegin — индекс первого копируемого символа в строке
srcEnd — индекс после последнего копируемого символа в строке
dst — целевой массив
dstBegin — начальное смещение в целевом массиве
Исключения:
IndexOutOfBoundsException — если выполняется любое из следующих условий:
  • srcBegin отрицательно
  • srcBegin больше srcEnd
  • srcEnd больше длины этой строки
  • dstBegin отрицательно
  • dstBegin+(srcEnd-srcBegin) больше dst.length

getBytes

public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
Кодирует эту String в последовательность байтов с использованием кодировки с указанным именем и сохраняет результат в новом массиве байтов.

Поведение этого метода, если эту строку невозможно закодировать в указанной кодировке, не определено. Если требуется больший контроль над процессом кодирования, следует использовать класс CharsetEncoder.

Параметры:
charsetName — имя поддерживаемой кодировки
Возвращает:
результирующий массив байтов
Исключения:
UnsupportedEncodingException — если кодировка с указанным именем не поддерживается
Начиная с:
1.1

getBytes

public byte[] getBytes(Charset charset)
Кодирует эту строку String в последовательность байтов с помощью заданной кодировки, сохраняя результат в новом массиве байтов.

Этот метод всегда заменяет последовательности некорректного ввода и символов, которые нельзя отобразить, массивом байтов замены по умолчанию для этой кодировки. Класс CharsetEncoder следует использовать, если требуется более гибко управлять процессом кодирования.

Параметры:
charset — кодировка Charset, используемая для кодирования String
Возвращает:
Полученный массив байтов
Начиная с:
1.6

getBytes

public byte[] getBytes()
Кодирует эту строку String в последовательность байтов с помощью default charset, сохраняя результат в новом массиве байтов.

Поведение этого метода, если эту строку нельзя закодировать с использованием кодировки по умолчанию, не определено. Класс CharsetEncoder следует использовать, если требуется более гибко управлять процессом кодирования.

Возвращает:
Полученный массив байтов
Начиная с:
1.1

equals

public boolean equals(Object anObject)
Сравнивает эту строку с указанным объектом. Результат равен true тогда и только тогда, когда аргумент не является null и представляет собой объект String, содержащий ту же последовательность символов, что и этот объект.

Для более точного сравнения строк см. Collator.

Переопределяет:
equals в классе Object
Параметры:
anObject — объект, с которым сравнивается эта строка String
Возвращает:
true, если заданный объект представляет String, эквивалентную этой строке, и false в противном случае
См. также:
  • compareTo(String)
  • equalsIgnoreCase(String)

contentEquals

public boolean contentEquals(StringBuffer sb)
Сравнивает эту строку с указанным StringBuffer. Результат равен true тогда и только тогда, когда эта String представляет ту же последовательность символов, что и указанная StringBuffer. Этот метод синхронизируется по StringBuffer.

Для более точного сравнения строк см. Collator.

Параметры:
sb — StringBuffer, с которым сравнивается эта строка String
Возвращает:
true, если эта String представляет ту же последовательность символов, что и указанная StringBuffer, и false в противном случае
Начиная с:
1.4

contentEquals

public boolean contentEquals(CharSequence cs)
Сравнивает эту строку с указанной CharSequence. Результат равен true тогда и только тогда, когда эта String представляет ту же последовательность значений char, что и указанная последовательность. Обратите внимание: если CharSequence является StringBuffer, метод синхронизируется по ней.

Для более точного сравнения строк см. Collator.

Параметры:
cs — последовательность, с которой сравнивается эта строка String
Возвращает:
true, если эта String представляет ту же последовательность значений char, что и указанная последовательность, и false в противном случае
Начиная с:
1.5

equalsIgnoreCase

public boolean equalsIgnoreCase(String anotherString)
Сравнивает эту String с другой String без учета регистра. Две строки считаются равными без учета регистра, если они имеют одинаковую длину, а соответствующие кодовые точки Unicode в этих строках равны без учета регистра.

Две кодовые точки Unicode считаются одинаковыми без учета регистра, если выполняется хотя бы одно из следующих условий:

  • Две кодовые точки Unicode совпадают (при сравнении оператором ==)
  • Вызов Character.toLowerCase(Character.toUpperCase(int)) для каждой кодовой точки Unicode дает одинаковый результат

Обратите внимание: этот метод не учитывает локаль и может давать неудовлетворительные результаты для некоторых локалей. Класс Collator выполняет сравнение с учетом локали.

Параметры:
anotherString — String, с которым сравнивается эта строка String
Возвращает:
true, если аргумент не является null и представляет собой эквивалентную String без учета регистра; в противном случае возвращает false
См. также:
  • equals(Object)
  • codePoints()

compareTo

public int compareTo(String anotherString)
Сравнивает две строки в лексикографическом порядке. Сравнение основано на значении Unicode каждого символа в строках. Последовательность символов, представленная этим объектом String, лексикографически сравнивается с последовательностью символов, представленной строкой-аргументом. Результат — отрицательное целое число, если этот объект String лексикографически предшествует строке-аргументу. Результат — положительное целое число, если этот объект String лексикографически следует за строкой-аргументом. Результат равен нулю, если строки равны; compareTo возвращает 0 тогда и только тогда, когда метод equals(Object) вернул бы true.

Так определяется лексикографический порядок. Если две строки различаются, то либо в некоторой позиции, допустимой для обеих строк, находятся разные символы, либо строки имеют разную длину, либо выполняются оба условия. Если символы в одной или нескольких позициях различаются, пусть k — наименьший такой индекс; тогда строка, символ которой в позиции k имеет меньшее значение при сравнении оператором <, лексикографически предшествует другой строке. В этом случае compareTo возвращает разность значений двух символов в позиции k этих строк, то есть значение:

this.charAt(k)-anotherString.charAt(k)
Если нет позиций, в которых строки различаются, более короткая строка лексикографически предшествует более длинной. В этом случае compareTo возвращает разность длин строк, то есть значение:
this.length()-anotherString.length()

Для более точного сравнения строк см. Collator.

Определено в:
compareTo в интерфейсе Comparable<String>
Параметры:
anotherString — сравниваемая String.
Возвращает:
значение 0, если строка-аргумент равна этой строке; значение меньше 0, если эта строка лексикографически меньше строки-аргумента; и значение больше 0, если эта строка лексикографически больше строки-аргумента.

compareToIgnoreCase

public int compareToIgnoreCase(String str)
Сравнивает две строки в лексикографическом порядке без учета различий в регистре. Этот метод возвращает целое число, знак которого совпадает со знаком результата вызова compareTo для версий строк с преобразованным регистром, в которых различия регистра устранены вызовом Character.toLowerCase(Character.toUpperCase(int)) для каждой кодовой точки Unicode.

Обратите внимание: этот метод не учитывает локаль и может задавать неудовлетворительный порядок для некоторых локалей. Класс Collator выполняет сравнение с учетом локали.

Параметры:
str — сравниваемая String.
Возвращает:
отрицательное целое число, ноль или положительное целое число, если указанная String больше, равна или меньше этой String соответственно, без учета регистра.
Начиная с:
1.2
См. также:
  • Collator
  • codePoints()

regionMatches

public boolean regionMatches(int toffset, String other, int ooffset, int len)
Проверяет, равны ли две области строк.

Подстрока этого объекта String сравнивается с подстрокой аргумента other. Результат равен true, если эти подстроки представляют одинаковые последовательности символов. Сравниваемая подстрока этого объекта String начинается с индекса toffset и имеет длину len. Сравниваемая подстрока other начинается с индекса ooffset и имеет длину len. Результат равен false тогда и только тогда, когда выполняется хотя бы одно из следующих условий:

  • toffset отрицательно.
  • ooffset отрицательно.
  • toffset+len больше длины этого объекта String.
  • ooffset+len больше длины другого аргумента.
  • Существует неотрицательное целое число k, меньшее len, такое что: this.charAt(toffset + k) != other.charAt(ooffset + k)

Обратите внимание: этот метод не учитывает локаль. Класс Collator выполняет сравнение с учетом локали.

Параметры:
toffset — начальное смещение подрегиона в этой строке.
other — строка-аргумент.
ooffset — начальное смещение подрегиона в строке-аргументе.
len — число сравниваемых символов.
Возвращает:
true, если указанный подрегион этой строки точно совпадает с указанным подрегионом строки-аргумента; в противном случае возвращает false.

regionMatches

public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
Проверяет, равны ли две области строк.

Подстрока этого объекта String сравнивается с подстрокой аргумента other. Результат равен true, если эти подстроки представляют одинаковые последовательности кодовых точек Unicode; регистр игнорируется тогда и только тогда, когда ignoreCase равно true. Сравниваются последовательности tsequence и osequence, где tsequence — последовательность, полученная так, как если бы был вызван this.substring(toffset, toffset + len).codePoints(), а osequence — последовательность, полученная так, как если бы был вызван other.substring(ooffset, ooffset + len).codePoints(). Результат равен true тогда и только тогда, когда выполняются все следующие условия:

  • toffset неотрицательно.
  • ooffset неотрицательно.
  • toffset+len меньше или равно длине этого объекта String.
  • ooffset+len меньше или равно длине другого аргумента.
  • если ignoreCase равно false, все пары соответствующих кодовых точек Unicode имеют одинаковые целочисленные значения; или если ignoreCase равно true, вызовов Character.toLowerCase( и Character.toUpperCase(int)) для всех пар кодовых точек Unicode приводит к одинаковым целочисленным значениям.

Обратите внимание: этот метод не учитывает локаль и может давать неудовлетворительные результаты для некоторых локалей, если ignoreCase равно true. Класс Collator выполняет сравнение с учетом локали.

Параметры:
ignoreCase — если равно true, при сравнении символов регистр игнорируется.
toffset — начальное смещение подрегиона в этой строке.
other — строка-аргумент.
ooffset — начальное смещение подрегиона в строке-аргументе.
len — число сравниваемых символов (16-разрядных кодовых единиц Unicode, значений char).
Возвращает:
true, если указанный подрегион этой строки совпадает с указанным подрегионом строки-аргумента; в противном случае возвращает false. Точный характер совпадения или сравнения без учета регистра определяется аргументом ignoreCase.
См. также:
  • codePoints()

startsWith

public boolean startsWith(String prefix, int toffset)
Проверяет, начинается ли подстрока этой строки с указанного префикса, начиная с заданного индекса.
Параметры:
prefix — префикс.
toffset — позиция начала поиска в этой строке.
Возвращает:
true, если последовательность символов, представленная аргументом, является префиксом подстроки этого объекта, начинающейся с индекса toffset; в противном случае возвращает false. Результат равен false, если toffset отрицательно или больше длины этого объекта String; в противном случае результат совпадает с результатом выражения
         this.substring(toffset).startsWith(prefix)
         

startsWith

public boolean startsWith(String prefix)
Проверяет, начинается ли эта строка с указанного префикса.
Параметры:
prefix — префикс.
Возвращает:
true, если последовательность символов, представленная аргументом, является префиксом последовательности символов, представленной этой строкой; в противном случае возвращает false. Обратите также внимание: будет возвращено true, если аргумент является пустой строкой или равен этому объекту String согласно методу equals(Object).
Начиная с:
1.0

endsWith

public boolean endsWith(String suffix)
Проверяет, заканчивается ли эта строка указанным суффиксом.
Параметры:
suffix — суффикс.
Возвращает:
true, если последовательность символов, представленная аргументом, является суффиксом последовательности символов, представленной этим объектом; в противном случае возвращает false. Обратите внимание: результат будет равен true, если аргумент является пустой строкой или равен этому объекту String согласно методу equals(Object).

hashCode

public int hashCode()
Возвращает хеш-код этой строки. Хеш-код объекта String вычисляется по формуле
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
с использованием арифметики int, где s[i] — i-й символ строки, n — длина строки, а ^ обозначает возведение в степень. (Хеш-значение пустой строки равно нулю.)
Переопределяет:
hashCode в классе Object
Возвращает:
значение хеш-кода этого объекта.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(Object)

indexOf

public int indexOf(int ch)
Возвращает индекс первого вхождения указанного символа в этой строке. Если в последовательности символов, представленной этим объектом String, встречается символ со значением ch, возвращается индекс (в кодовых единицах Unicode) его первого вхождения. Для значений ch в диапазоне от 0 до 0xFFFF (включительно) это наименьшее значение k, для которого:
this.charAt(k) == ch
истинно. Для других значений ch это наименьшее значение k, для которого:
this.codePointAt(k) == ch
истинно. В обоих случаях, если такой символ в этой строке не встречается, возвращается -1.
Параметры:
ch — символ (кодовая точка Unicode).
Возвращает:
индекс первого вхождения символа в последовательности символов, представленной этим объектом, или -1, если символ не встречается.

indexOf

public int indexOf(int ch, int fromIndex)
Возвращает индекс первого вхождения указанного символа в этой строке, начиная поиск с заданного индекса.

Если символ со значением ch встречается в последовательности символов, представленной этим объектом String, по индексу не меньше fromIndex, возвращается индекс его первого вхождения. Для значений ch в диапазоне от 0 до 0xFFFF (включительно) это наименьшее значение k, для которого:

(this.charAt(k) == ch) && (k >= fromIndex)
истинно. Для других значений ch это наименьшее значение k, для которого:
(this.codePointAt(k) == ch) && (k >= fromIndex)
истинно. В обоих случаях, если такой символ не встречается в этой строке начиная с позиции fromIndex, возвращается -1.

Значение fromIndex не ограничено. Если оно отрицательно, эффект такой же, как если бы оно равнялось нулю: поиск может выполняться по всей строке. Если оно больше длины этой строки, эффект такой же, как если бы оно равнялось длине строки: возвращается -1.

Все индексы задаются в значениях char (кодовых единицах Unicode).

Примечание API:
В отличие, например, от substring(int), этот метод не выбрасывает исключение, если fromIndex находится вне допустимого диапазона. Вместо этого он возвращает -1, если fromIndex больше длины строки. Сам по себе этот результат неотличим от ситуации, когда ch действительно отсутствует в строке. Если требуется более строгое поведение, следует рассмотреть indexOf(int, int, int). Например, в s класса String s.indexOf(ch, fromIndex, s.length()) выбросил бы исключение, если бы fromIndex было больше длины строки или отрицательным.
Параметры:
ch — символ (кодовая точка Unicode).
fromIndex — индекс, с которого начинается поиск.
Возвращает:
индекс первого вхождения символа в последовательности символов, представленной этим объектом, который больше или равен fromIndex, или -1, если символ не встречается.

indexOf

public int indexOf(int ch, int beginIndex, int endIndex)
Возвращает индекс первого вхождения указанного символа в этой строке, начиная поиск с beginIndex и останавливаясь перед endIndex.

Если символ со значением ch встречается в последовательности символов, представленной этим объектом String, по индексу не меньше beginIndex, но меньше endIndex, возвращается индекс его первого вхождения. Для значений ch в диапазоне от 0 до 0xFFFF (включительно) это наименьшее значение k, для которого:

(this.charAt(k) == ch) && (beginIndex <= k < endIndex)
истинно. Для других значений ch это наименьшее значение k, для которого:
(this.codePointAt(k) == ch) && (beginIndex <= k < endIndex)
истинно. В обоих случаях, если такой символ не встречается в этой строке начиная с позиции beginIndex и до позиции endIndex, возвращается -1.

Все индексы задаются в значениях char (кодовых единицах Unicode).

Параметры:
ch — символ (кодовая точка Unicode).
beginIndex — индекс, с которого начинается поиск (включительно).
endIndex — индекс, на котором заканчивается поиск (не включительно).
Возвращает:
индекс первого вхождения символа в последовательности символов, представленной этим объектом, который больше или равен beginIndex и меньше endIndex, или -1, если символ не встречается.
Выбрасывает:
StringIndexOutOfBoundsException — если beginIndex отрицательно, endIndex больше длины этого объекта String или beginIndex больше endIndex.
Начиная с:
21

lastIndexOf

public int lastIndexOf(int ch)
Возвращает индекс последнего вхождения указанного символа в этой строке. Для значений ch в диапазоне от 0 до 0xFFFF (включительно) возвращаемый индекс (в кодовых единицах Unicode) является наибольшим значением k, для которого:
this.charAt(k) == ch
истинно. Для других значений ch это наибольшее значение k, для которого:
this.codePointAt(k) == ch
истинно. В обоих случаях, если такой символ в этой строке не встречается, возвращается -1. Поиск в String выполняется в обратном направлении, начиная с последнего символа.
Параметры:
ch — символ (кодовая точка Unicode).
Возвращает:
индекс последнего вхождения символа в последовательности символов, представленной этим объектом, или -1, если символ не встречается.

lastIndexOf

public int lastIndexOf(int ch, int fromIndex)
Возвращает индекс последнего вхождения указанного символа в этой строке, выполняя поиск в обратном направлении от заданного индекса. Для значений ch в диапазоне от 0 до 0xFFFF (включительно) возвращаемый индекс является наибольшим значением k, для которого:
(this.charAt(k) == ch) && (k <= fromIndex)
истинно. Для других значений ch это наибольшее значение k, для которого:
(this.codePointAt(k) == ch) && (k <= fromIndex)
истинно. В обоих случаях, если такой символ не встречается в этой строке в позиции fromIndex или перед ней, возвращается -1.

Все индексы задаются в значениях char (кодовых единицах Unicode).

Параметры:
ch — символ (кодовая точка Unicode).
fromIndex — индекс, с которого начинается поиск. Значение fromIndex не ограничено. Если оно больше или равно длине этой строки, эффект такой же, как если бы оно равнялось длине строки минус один: поиск может выполняться по всей строке. Если оно отрицательно, эффект такой же, как если бы оно равнялось -1: возвращается -1.
Возвращает:
индекс последнего вхождения символа в последовательности символов, представленной этим объектом, который меньше или равен fromIndex, или -1, если символ не встречается до этой позиции.

indexOf

public int indexOf(String str)
Возвращает индекс первого вхождения указанной подстроки в этой строке.

Возвращаемый индекс — наименьшее значение k, для которого:

this.startsWith(str, k)
Если такого значения k не существует, возвращается -1.
Параметры:
str — подстрока для поиска.
Возвращает:
индекс первого вхождения указанной подстроки или -1, если такого вхождения нет.

indexOf

public int indexOf(String str, int fromIndex)
Возвращает индекс первого вхождения указанной подстроки в этой строке, начиная с заданного индекса.

Возвращаемый индекс — наименьшее значение k, для которого:

    k >= Math.min(fromIndex, this.length()) &&
                  this.startsWith(str, k)
Если такого значения k не существует, возвращается -1.
Примечание API:
В отличие, например, от substring(int), этот метод не выбрасывает исключение, если fromIndex находится вне допустимого диапазона. Вместо этого он возвращает -1, если fromIndex больше длины строки. Сам по себе этот результат неотличим от ситуации, когда str действительно отсутствует в строке. Если требуется более строгое поведение, следует рассмотреть indexOf(String, int, int). Например, для s класса String и непустой str вызов s.indexOf(str, fromIndex, s.length()) выбросил бы исключение, если бы fromIndex было больше длины строки или отрицательным.
Параметры:
str — подстрока для поиска.
fromIndex — индекс, с которого начинается поиск.
Возвращает:
индекс первого вхождения указанной подстроки, начиная с заданного индекса, или -1, если такого вхождения нет.

indexOf

public int indexOf(String str, int beginIndex, int endIndex)
Возвращает индекс первого вхождения указанной подстроки в заданном диапазоне индексов строки this.

Этот метод возвращает тот же результат, что и вызов

    s.substring(beginIndex, endIndex).indexOf(str) + beginIndex
если индекс, возвращённый indexOf(String), неотрицателен, и возвращает -1 в противном случае. (При этом подстрока не создаётся.)
Параметры:
str — подстрока для поиска.
beginIndex — индекс, с которого начинается поиск (включительно).
endIndex — индекс, на котором заканчивается поиск (не включительно).
Возвращает:
индекс первого вхождения указанной подстроки в заданном диапазоне индексов или -1, если такое вхождение отсутствует.
Выбрасывает:
StringIndexOutOfBoundsException — если beginIndex отрицателен, или endIndex больше длины этого объекта String, или beginIndex больше endIndex.
Начиная с версии:
21

lastIndexOf

public int lastIndexOf(String str)
Возвращает индекс последнего вхождения указанной подстроки в этой строке. Считается, что последнее вхождение пустой строки "" находится по индексу this.length().

Возвращаемый индекс — наибольшее значение k, для которого:

this.startsWith(str, k)
Если такого значения k не существует, возвращается -1.
Параметры:
str — подстрока для поиска.
Возвращает:
индекс последнего вхождения указанной подстроки или -1, если такое вхождение отсутствует.

lastIndexOf

public int lastIndexOf(String str, int fromIndex)
Возвращает индекс последнего вхождения указанной подстроки в этой строке, выполняя поиск в обратном направлении начиная с указанного индекса.

Возвращаемый индекс — наибольшее значение k, для которого:

    k <= Math.min(fromIndex, this.length()) &&
                  this.startsWith(str, k)
Если такого значения k не существует, возвращается -1.
Параметры:
str — подстрока для поиска.
fromIndex — индекс, с которого начинается поиск.
Возвращает:
индекс последнего вхождения указанной подстроки при поиске в обратном направлении от указанного индекса или -1, если такое вхождение отсутствует.

substring

public String substring(int beginIndex)
Возвращает строку, являющуюся подстрокой этой строки. Подстрока начинается с символа по указанному индексу и продолжается до конца этой строки.

Примеры:

"unhappy".substring(2) returns "happy"
"Harbison".substring(3) returns "bison"
"emptiness".substring(9) returns "" (an empty string)
Параметры:
beginIndex — начальный индекс, включительно.
Возвращает:
указанную подстроку.
Выбрасывает:
IndexOutOfBoundsException — если beginIndex отрицателен или больше длины этого объекта String.

substring

public String substring(int beginIndex, int endIndex)
Возвращает строку, являющуюся подстрокой этой строки. Подстрока начинается с указанного beginIndex и продолжается до символа с индексом endIndex - 1. Таким образом, длина подстроки равна endIndex-beginIndex.

Примеры:

"hamburger".substring(4, 8) returns "urge"
"smiles".substring(1, 5) returns "mile"
Параметры:
beginIndex — начальный индекс, включительно.
endIndex — конечный индекс, не включительно.
Возвращает:
указанную подстроку.
Выбрасывает:
IndexOutOfBoundsException — если beginIndex отрицателен, или endIndex больше длины этого объекта String, или beginIndex больше endIndex.

subSequence

public CharSequence subSequence(int beginIndex, int endIndex)
Возвращает символьную последовательность, являющуюся подпоследовательностью этой последовательности.

Вызов этого метода вида

str.subSequence(begin, end)
работает точно так же, как вызов
str.substring(begin, end)
Определено в:
subSequence в интерфейсе CharSequence
Примечание API:
Этот метод определён для того, чтобы класс String мог реализовать интерфейс CharSequence.
Параметры:
beginIndex — начальный индекс, включительно.
endIndex — конечный индекс, не включительно.
Возвращает:
указанную подпоследовательность.
Выбрасывает:
IndexOutOfBoundsException — если beginIndex или endIndex отрицателен, если endIndex больше length() или если beginIndex больше endIndex
Начиная с версии:
1.4

concat

public String concat(String str)
Добавляет указанную строку в конец этой строки.

Если длина строки-аргумента равна 0, возвращается этот объект String. В противном случае возвращается объект String, представляющий символьную последовательность, которая является конкатенацией символьной последовательности, представленной этим объектом String, и символьной последовательности, представленной строкой-аргументом.

Примеры:

"cares".concat("s") returns "caress"
"to".concat("get").concat("her") returns "together"
Параметры:
str — String, добавляемая в конец этого String.
Возвращает:
строку, представляющую конкатенацию символов этого объекта, за которыми следуют символы строки-аргумента.

replace

public String replace(char oldChar, char newChar)
Возвращает строку, полученную заменой всех вхождений oldChar в этой строке на newChar.

Если символ oldChar отсутствует в символьной последовательности, представленной этим объектом String, возвращается ссылка на этот объект String. В противном случае возвращается объект String, представляющий символьную последовательность, идентичную последовательности, представленной этим объектом String, за исключением того, что каждое вхождение oldChar заменено вхождением newChar.

Примеры:

"mesquite in your cellar".replace('e', 'o')
        returns "mosquito in your collar"
"the war of baronets".replace('r', 'y')
        returns "the way of bayonets"
"sparring with a purple porpoise".replace('p', 't')
        returns "starring with a turtle tortoise"
"JonL".replace('q', 'x') returns "JonL" (no change)
Параметры:
oldChar — старый символ.
newChar — новый символ.
Возвращает:
строку, полученную из этой строки заменой каждого вхождения oldChar на newChar.

matches

public boolean matches(String regex)
Показывает, соответствует ли эта строка заданному регулярному выражению.

Вызов этого метода вида str.matches(regex) даёт точно такой же результат, как выражение

Pattern.matches(regex, str)
Параметры:
regex — регулярное выражение, которому должна соответствовать эта строка
Возвращает:
true тогда и только тогда, когда эта строка соответствует заданному регулярному выражению
Выбрасывает:
PatternSyntaxException — если синтаксис регулярного выражения некорректен
Начиная с версии:
1.4
См. также:
  • Pattern

contains

public boolean contains(CharSequence s)
Возвращает true тогда и только тогда, когда эта строка содержит указанную последовательность значений char.
Параметры:
s — последовательность для поиска
Возвращает:
true, если эта строка содержит s, иначе false
Начиная с версии:
1.5

replaceFirst

public String replaceFirst(String regex, String replacement)
Заменяет первую подстроку этой строки, соответствующую заданному регулярному выражению, указанной заменой.

Вызов этого метода вида str.replaceFirst(regex, repl) даёт точно такой же результат, как выражение

Pattern.compile(regex).matcher(str).replaceFirst(repl)

Обратите внимание, что обратные косые черты (\) и знаки доллара ($) в строке замены могут привести к результатам, отличающимся от тех, которые были бы получены при использовании этой строки как буквальной замены; см. Matcher.replaceFirst(String). При необходимости используйте Matcher.quoteReplacement(String), чтобы отключить специальное значение этих символов.

Параметры:
regex — регулярное выражение, которому должна соответствовать эта строка
replacement — строка, подставляемая вместо первого совпадения
Возвращает:
Результирующий String
Выбрасывает:
PatternSyntaxException — если синтаксис регулярного выражения некорректен
Начиная с версии:
1.4
См. также:
  • Pattern

replaceAll

public String replaceAll(String regex, String replacement)
Заменяет каждую подстроку этой строки, соответствующую заданному регулярному выражению, указанной заменой.

Вызов этого метода вида str.replaceAll(regex, repl) даёт точно такой же результат, как выражение

Pattern.compile(regex).matcher(str).replaceAll(repl)

Обратите внимание, что обратные косые черты (\) и знаки доллара ($) в строке замены могут привести к результатам, отличающимся от тех, которые были бы получены при использовании этой строки как буквальной замены; см. Matcher.replaceAll. При необходимости используйте Matcher.quoteReplacement(String), чтобы отключить специальное значение этих символов.

Параметры:
regex — регулярное выражение, которому должна соответствовать эта строка
replacement — строка, подставляемая вместо каждого совпадения
Возвращает:
Результирующий String
Выбрасывает:
PatternSyntaxException — если синтаксис регулярного выражения некорректен
Начиная с версии:
1.4
См. также:
  • Pattern

replace

public String replace(CharSequence target, CharSequence replacement)
Заменяет каждую подстроку этой строки, соответствующую буквальной целевой последовательности, указанной буквальной последовательностью замены. Замена выполняется от начала строки к концу: например, замена "aa" на "b" в строке "aaa" даст "ba", а не "ab".
Параметры:
target — последовательность значений char для замены
replacement — последовательность значений char для замены
Возвращает:
результирующую строку
Начиная с версии:
1.5

split

public String[] split(String regex, int limit)
Разбивает эту строку на части по совпадениям с заданным регулярным выражением.

Возвращаемый этим методом массив содержит каждую подстроку этой строки, за которой следует другая подстрока, соответствующая заданному выражению, либо конец строки. Подстроки в массиве расположены в том же порядке, в котором они встречаются в этой строке. Если выражение не соответствует ни одной части входных данных, результирующий массив содержит только один элемент — эту строку.

Если в начале этой строки имеется совпадение ненулевой ширины, в начало результирующего массива включается пустая начальная подстрока. Однако совпадение нулевой ширины в начале никогда не приводит к появлению такой пустой начальной подстроки.

Параметр limit определяет, сколько раз применяется шаблон, и поэтому влияет на длину результирующего массива.

  • Если limit положителен, шаблон будет применён не более limit - 1 раз, длина массива не превысит limit, а последний элемент массива будет содержать все входные данные после последнего найденного разделителя.

  • Если limit равен нулю, шаблон будет применяться максимально возможное число раз, длина массива может быть любой, а завершающие пустые строки будут отброшены.

  • Если limit отрицателен, шаблон будет применяться максимально возможное число раз, а длина массива может быть любой.

Например, строка "boo:and:foo" даёт следующие результаты при указанных значениях параметров:

Пример разделения строки: регулярное выражение, ограничение и результат
Регулярное выражение Ограничение Результат
: 2 { "boo", "and:foo" }
5 { "boo", "and", "foo" }
-2 { "boo", "and", "foo" }
o 5 { "b", "", ":and:f", "", "" }
-2 { "b", "", ":and:f", "", "" }
0 { "b", "", ":and:f" }

Вызов этого метода вида str.split(regex, n) даёт тот же результат, что и выражение

Pattern.compile(regex).split(str, n)
Параметры:
regex — регулярное выражение-разделитель
limit — пороговое значение результата, как описано выше
Возвращает:
массив строк, полученный разбиением этой строки по совпадениям с заданным регулярным выражением
Выбрасывает:
PatternSyntaxException — если синтаксис регулярного выражения некорректен
Начиная с версии:
1.4
См. также:
  • Pattern

splitWithDelimiters

public String[] splitWithDelimiters(String regex, int limit)
Разбивает эту строку на части по совпадениям с заданным регулярным выражением и возвращает как строки, так и соответствующие разделители.

Возвращаемый этим методом массив содержит каждую подстроку этой строки, за которой следует другая подстрока, соответствующая заданному выражению, либо конец строки. За каждой подстрокой непосредственно следует подпоследовательность (разделитель), соответствующая заданному выражению, кроме последней подстроки, за которой ничего не следует. Подстроки и разделители в массиве расположены в том же порядке, в котором они встречаются во входных данных. Если выражение не соответствует ни одной части входных данных, результирующий массив содержит только один элемент — эту строку.

Если в начале этой строки имеется совпадение ненулевой ширины, в начало результирующего массива включается пустая начальная подстрока. Однако совпадение нулевой ширины в начале никогда не приводит к появлению такой пустой начальной подстроки или пустого разделителя.

Параметр limit определяет, сколько раз применяется шаблон, и поэтому влияет на длину результирующего массива.

  • Если limit положителен, шаблон будет применён не более limit - 1 раза, длина массива не превысит 2 × limit - 1, а последний элемент массива будет содержать все входные данные после последнего найденного разделителя.
  • Если limit равен нулю, шаблон будет применяться максимально возможное число раз, длина массива может быть любой, а завершающие пустые строки будут отброшены.
  • Если limit отрицателен, шаблон будет применяться максимально возможное число раз, а длина массива может быть любой.

Например, входные данные "boo:::and::foo" дают следующие результаты при указанных значениях параметров:

Пример разделения строки: регулярное выражение, ограничение и результат
Регулярное выражение Ограничение Результат
:+ 2 { "boo", ":::", "and::foo" }
5 { "boo", ":::", "and", "::", "foo" }
-1 { "boo", ":::", "and", "::", "foo" }
o 5 { "b", "o", "", "o", ":::and::f", "o", "", "o", "" }
-1 { "b", "o", "", "o", ":::and::f", "o", "", "o", "" }
0 { "b", "o", "", "o", ":::and::f", "o", "", "o" }
Примечание API:
Вызов этого метода вида str.splitWithDelimiters(regex, n) даёт тот же результат, что и выражение
Pattern.compile(regex).splitWithDelimiters(str, n)
Параметры:
regex — регулярное выражение-разделитель
limit — пороговое значение результата, как описано выше
Возвращает:
массив строк, полученный разбиением этой строки по совпадениям с заданным регулярным выражением; подстроки и соответствующие разделители чередуются
Начиная с версии:
21

split

public String[] split(String regex)
Разбивает эту строку на части по совпадениям с заданным регулярным выражением.

Этот метод работает так, как если бы он вызывал двухаргументный метод split с заданным выражением и нулевым аргументом limit. Поэтому завершающие пустые строки не включаются в результирующий массив.

Например, строка "boo:and:foo" даёт следующие результаты при использовании этих выражений:

Примеры разделения строки: регулярное выражение и результат
Регулярное выражение Результат
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }
Параметры:
regex — регулярное выражение-разделитель
Возвращает:
массив строк, полученный разбиением этой строки по совпадениям с заданным регулярным выражением
Выбрасывает:
PatternSyntaxException — если синтаксис регулярного выражения некорректен
Начиная с версии:
1.4
См. также:
  • Pattern

join

public static String join(CharSequence delimiter, CharSequence... elements)
Возвращает новую строку, составленную из копий CharSequence elements, объединённых с копией указанного delimiter.
Например,
    String message = String.join("-", "Java", "is", "cool");
    // message returned is: "Java-is-cool"
Обратите внимание: если элемент равен null, добавляется "null".
Параметры:
delimiter — разделитель между элементами
elements — объединяемые элементы.
Возвращает:
новую String, состоящую из elements, разделённых delimiter
Выбрасывает:
NullPointerException — если delimiter или elements равен null
Начиная с версии:
1.8
См. также:
  • StringJoiner

join

public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
Возвращает новую String, составленную из копий CharSequence elements, объединённых с копией указанного delimiter.
Например,
    List<String> strings = List.of("Java", "is", "cool");
    String message = String.join(" ", strings);
    // message returned is: "Java is cool"

    Set<String> strings =
        new LinkedHashSet<>(List.of("Java", "is", "very", "cool"));
    String message = String.join("-", strings);
    // message returned is: "Java-is-very-cool"
Обратите внимание: если отдельный элемент равен null, добавляется "null".
Параметры:
delimiter — последовательность символов, используемая для разделения каждого из elements в результирующем String
elements — Iterable, в котором будут объединены elements.
Возвращает:
новую String, составленную из аргумента elements
Выбрасывает:
NullPointerException — если delimiter или elements равен null
Начиная с версии:
1.8
См. также:
  • join(CharSequence,CharSequence...)
  • StringJoiner

toLowerCase

public String toLowerCase(Locale locale)
Преобразует все символы этого String в нижний регистр, используя правила указанной Locale. Изменение регистра выполняется на основе версии стандарта Unicode, указанной в классе Character. Поскольку соответствие при изменении регистра не всегда является отображением 1:1 между символами char, результирующий String и этот String могут иметь разную длину.

Примеры преобразования в нижний регистр приведены в таблице:

Примеры преобразования в нижний регистр: код языка локали, верхний регистр, нижний регистр и описание
Код языка локали Верхний регистр Нижний регистр Описание
tr (турецкий) \u0130 \u0069 заглавная буква I с точкой сверху -> строчная буква i
tr (турецкий) \u0049 \u0131 заглавная буква I -> строчная буква i без точки
(все) French Fries french fries все символы String преобразованы в нижний регистр
(все) ΙΧΘΥΣ ιχθυσ все символы String преобразованы в нижний регистр
Параметры:
locale — использовать правила преобразования регистра для этой локали
Возвращает:
String в нижнем регистре.
Начиная с версии:
1.1
См. также:
  • toLowerCase()
  • toUpperCase()
  • toUpperCase(Locale)

toLowerCase

public String toLowerCase()
Преобразует все символы этого String в нижний регистр, используя правила локали по умолчанию. Этот метод эквивалентен toLowerCase(Locale.getDefault()).
Примечание API:
Этот метод зависит от локали и может приводить к неожиданным результатам, если использовать его для строк, которые должны интерпретироваться независимо от локали. Примерами являются идентификаторы языков программирования, ключи протоколов и теги HTML. Например, "TITLE".toLowerCase() в турецкой локали возвращает "t\u0131tle", где '\u0131' — символ LATIN SMALL LETTER DOTLESS I. Чтобы получить правильные результаты для строк, не зависящих от локали, используйте toLowerCase(Locale.ROOT).
Возвращает:
String в нижнем регистре.
См. также:
  • toLowerCase(Locale)

toUpperCase

public String toUpperCase(Locale locale)
Преобразует все символы этой String в верхний регистр, используя правила указанной Locale. Изменение регистра основано на версии стандарта Unicode, указанной для класса Character. Поскольку преобразование регистра не всегда выполняется в отношении 1:1 для символов, длина результирующей String и этой String может различаться.

Примеры преобразования регистра с учетом локали и преобразования 1:M приведены в следующей таблице:

Примеры преобразования регистра с учетом локали и преобразования 1:M. Указаны код языка локали, нижний регистр, верхний регистр и описание.
Код языка локали Нижний регистр Верхний регистр Описание
tr (турецкий) \u0069 \u0130 строчная буква i -> заглавная буква I с точкой сверху
tr (турецкий) \u0131 \u0049 строчная буква без точки i -> заглавная буква I
(все) \u00df \u0053 \u0053 строчная буква sharp s -> две буквы: SS
(все) Fahrvergnügen FAHRVERGNÜGEN
Параметры:
locale - использовать правила преобразования регистра для этой локали
Возвращает:
String в верхнем регистре.
С версии:
1.1
См. также:
  • toUpperCase()
  • toLowerCase()
  • toLowerCase(Locale)

toUpperCase

public String toUpperCase()
Преобразует все символы этой String в верхний регистр, используя правила локали по умолчанию. Этот метод эквивалентен toUpperCase(Locale.getDefault()).
Примечание к API:
Этот метод зависит от локали и может приводить к неожиданным результатам, если использовать его для строк, которые должны интерпретироваться независимо от локали. Например, это идентификаторы языков программирования, ключи протоколов и HTML-теги. Так, "title".toUpperCase() в турецкой локали возвращает "T\u0130TLE", где '\u0130' — символ LATIN CAPITAL LETTER I WITH DOT ABOVE. Чтобы получить правильные результаты для строк, не зависящих от локали, используйте toUpperCase(Locale.ROOT).
Возвращает:
String в верхнем регистре.
См. также:
  • toUpperCase(Locale)

trim

public String trim()
Возвращает строку, значением которой является эта строка без начальных и конечных пробелов, где пробелом считается любой символ с кодовой точкой, меньшей или равной 'U+0020' (символ пробела).

Если этот объект String представляет пустую последовательность символов или если коды первого и последнего символов последовательности символов, представленной этим объектом String, не являются кодами пробелов (в соответствии с приведенным выше определением), возвращается ссылка на этот объект String.

В противном случае, если все символы этой строки являются пробелами (в соответствии с приведенным выше определением), возвращается объект String, представляющий пустую строку.

В противном случае пусть k — индекс первого символа строки, код которого не является кодом пробела (в соответствии с приведенным выше определением), а m — индекс последнего символа строки, код которого не является кодом пробела (в соответствии с приведенным выше определением). Возвращается объект String, представляющий подстроку этой строки, которая начинается с символа с индексом k и заканчивается символом с индексом m, то есть результат this.substring(k, m + 1).

Примечание к API:
Этот метод удаляет из строки начальные и конечные пробелы, а также управляющие символы ASCII. Чтобы удалять символы, используя определение пробельных символов на основе Unicode, используйте strip, stripIndent, stripLeading или stripTrailing.
Возвращает:
строку, значением которой является эта строка без начальных и конечных пробелов, либо эту строку, если у нее нет начальных или конечных пробелов.

strip

public String strip()
Возвращает строку, значением которой является эта строка без начальных и конечных пробельных символов.

Если этот объект String представляет пустую строку или если все кодовые точки этой строки являются пробельными символами, возвращается пустая строка.

В противном случае возвращает подстроку этой строки, начинающуюся с первой кодовой точки, которая не является пробельным символом, и заканчивающуюся последней кодовой точкой, которая не является пробельным символом.

Этот метод можно использовать для удаления пробельных символов в начале и конце строки.

Возвращает:
строку, значением которой является эта строка без начальных и конечных пробельных символов
С версии:
11
См. также:
  • Character.isWhitespace(int)

stripLeading

public String stripLeading()
Возвращает строку, значением которой является эта строка без начальных пробельных символов.

Если этот объект String представляет пустую строку или если все кодовые точки этой строки являются пробельными символами, возвращается пустая строка.

В противном случае возвращает подстроку этой строки, начинающуюся с первой кодовой точки, которая не является пробельным символом, и заканчивающуюся последней кодовой точкой этой строки.

Этот метод можно использовать для удаления пробельных символов в начале строки.

Возвращает:
строку, значением которой является эта строка без начальных пробельных символов
С версии:
11
См. также:
  • Character.isWhitespace(int)

stripTrailing

public String stripTrailing()
Возвращает строку, значением которой является эта строка без конечных пробельных символов.

Если этот объект String представляет пустую строку или если все символы этой строки являются пробельными символами, возвращается пустая строка.

В противном случае возвращает подстроку этой строки, начинающуюся с первой кодовой точки этой строки и заканчивающуюся последней кодовой точкой, которая не является пробельным символом.

Этот метод можно использовать для удаления пробельных символов в конце строки.

Возвращает:
строку, значением которой является эта строка без конечных пробельных символов
С версии:
11
См. также:
  • Character.isWhitespace(int)

isBlank

public boolean isBlank()
Возвращает true, если строка пуста или содержит только кодовые точки пробельных символов; в противном случае возвращает false.
Возвращает:
true, если строка пуста или содержит только кодовые точки пробельных символов; в противном случае возвращает false
С версии:
11
См. также:
  • Character.isWhitespace(int)

lines

public Stream<String> lines()
Возвращает поток строк, извлеченных из этой строки и разделенных разделителями строк.

Разделитель строки — это один из следующих символов: перевод строки "\n" (U+000A), возврат каретки "\r" (U+000D) или возврат каретки, непосредственно за которым следует перевод строки "\r\n" (U+000D U+000A).

Строка — это либо последовательность из нуля или более символов, за которой следует разделитель строки, либо последовательность из одного или более символов, за которой следует конец строки. Строка не включает разделитель строки.

Поток, возвращаемый этим методом, содержит строки из этой строки в порядке их следования.

Примечание к API:
Из этого определения строки следует, что пустая строка содержит ноль строк и что после разделителя строк в конце строки нет пустой строки.
Примечание по реализации:
Этот метод работает быстрее, чем split("\R"), поскольку предоставляет элементы лениво и быстрее ищет разделители строк.
Возвращает:
поток строк, извлеченных из этой строки
С версии:
11

indent

public String indent(int n)
Изменяет отступ каждой строки этой строки в зависимости от значения n и нормализует символы окончания строк.

Эта строка концептуально разделяется на строки с помощью lines(). Затем каждая строка изменяется, как описано ниже, и в ее конец добавляется перевод строки "\n" (U+000A). Полученные строки объединяются и возвращаются.

Если n > 0, в начало каждой строки вставляются n пробелов (U+0020).

Если n < 0, из начала каждой строки удаляется до n пробельных символов. Если в строке недостаточно пробельных символов, удаляются все начальные пробельные символы. Каждый пробельный символ считается одним символом. В частности, символ табуляции "\t" (U+0009) считается одним символом и не расширяется.

Если n == 0, строка остается без изменений. Однако разделители строк все равно нормализуются.

Параметры:
n - количество начальных пробельных символов, которые нужно добавить или удалить
Возвращает:
строку с измененными отступами и нормализованными окончаниями строк
С версии:
12
См. также:
  • lines()
  • isBlank()
  • Character.isWhitespace(int)

stripIndent

public String stripIndent()
Возвращает строку, значением которой является эта строка без случайных пробельных символов в начале и конце каждой строки.

В текстовых блоках часто присутствуют случайные пробельные символы, выравнивающие содержимое относительно открывающего разделителя. Например, в следующем коде точки обозначают случайные пробельные символы:

String html = """
..............<html>
..............    <body>
..............        <p>Hello, world</p>
..............    </body>
..............</html>
..............""";
Этот метод рассматривает случайные пробельные символы как отступ, который нужно удалить, сохраняя относительные отступы содержимого. Используя | для обозначения начала каждой строки:
|<html>
|    <body>
|        <p>Hello, world</p>
|    </body>
|</html>
Сначала извлекаются отдельные строки этой строки. Строка — это последовательность из нуля или более символов, за которой следует разделитель строк или конец строки. Если строка содержит хотя бы один разделитель строк, последняя строка состоит из символов между последним разделителем и концом строки. В противном случае, если строка не содержит разделителей, последняя строка начинается в начале строки и заканчивается в ее конце, то есть представляет собой всю строку. Строка не включает разделитель строки.

Затем определяется минимальный отступ (min) следующим образом:

  • Для каждой непустой строки (согласно определению isBlank()) подсчитываются начальные пробельные символы.

  • Также подсчитываются начальные пробельные символы в последней строке, даже если она пустая.

Значение min равно наименьшему из этих количеств.

Для каждой непустой строки удаляются min начальных пробельных символов, а также все конечные пробельные символы. Пустые строки заменяются пустой строкой.

Наконец, строки объединяются в новую строку с использованием символа LF "\n" (U+000A) в качестве разделителя.

Примечание к API:
Основное назначение этого метода — сдвинуть блок строк максимально влево, сохранив относительные отступы. Таким образом, у строк с наименьшим отступом не будет начальных пробельных символов. Результат будет содержать столько же разделителей строк, сколько и эта строка. Если эта строка заканчивается разделителем строк, результат также будет заканчиваться разделителем строк.
Требования к реализации:
Этот метод считает ширину всех пробельных символов одинаковой. Если отступы во всех строках последовательно образованы одинаковыми последовательностями символов, результат будет соответствовать описанному выше.
Возвращает:
строку с удаленными случайными отступами и нормализованными разделителями строк
С версии:
15
См. также:
  • lines()
  • isBlank()
  • indent(int)
  • Character.isWhitespace(int)

translateEscapes

public String translateEscapes()
Возвращает строку, значением которой является эта строка с последовательностями escape-кодов, преобразованными так же, как в строковом литерале.

Последовательности escape-кодов преобразуются следующим образом:

Преобразование
Escape-код Название Преобразование
\b забой U+0008
\t горизонтальная табуляция U+0009
\n перевод строки U+000A
\f перевод страницы U+000C
\r возврат каретки U+000D
\s пробел U+0020
\" двойная кавычка U+0022
\' одинарная кавычка U+0027
\\ обратная косая черта U+005C
\0 - \377 восьмеричная escape-последовательность эквивалентные кодовые точки
\<line-terminator> продолжение отбрасывается
Примечание по реализации:
Этот метод не преобразует escape-последовательности Unicode, например "\u2022". Escape-последовательности Unicode преобразуются компилятором Java при чтении входных символов и не входят в спецификацию строковых литералов.
Возвращает:
Строку с преобразованными escape-последовательностями.
Выбрасывает:
IllegalArgumentException - если escape-последовательность имеет неверный формат.
См. Спецификацию языка Java:
3.10.7 Escape-последовательности
С версии:
15

transform

public <R> R transform(Function<? super String, ? extends R> f)
Этот метод позволяет применить функцию к строке this. Функция должна принимать один аргумент типа String и возвращать результат типа R.

Любое исключение, выброшенное f.apply(), будет передано вызывающему коду.

Параметры типа:
R - тип результата
Параметры:
f - функция, которую нужно применить
Возвращает:
результат применения функции к этой строке
С версии:
12
См. также:
  • Function

toString

public String toString()
Возвращается сам этот объект (который уже является строкой!).
Определен в:
toString в интерфейсе CharSequence
Переопределяет:
toString в классе Object
Возвращает:
саму строку.

chars

public IntStream chars()
Возвращает поток значений int, полученных путем дополнения нулями значений char этой последовательности. Любой символ char, соответствующий кодовой точке суррогата, передается без интерпретации.
Определен в:
chars в интерфейсе CharSequence
Возвращает:
IntStream значений char из этой последовательности
С версии:
9

codePoints

public IntStream codePoints()
Возвращает поток значений кодовых точек из этой последовательности. Любые пары суррогатов, встречающиеся в последовательности, объединяются так же, как при вызове Character.toCodePoint, и результат передается в поток. Все остальные кодовые единицы, включая обычные символы BMP, непарные суррогаты и неопределенные кодовые единицы, дополняются нулями до значений int, которые затем передаются в поток.
Определен в:
codePoints в интерфейсе CharSequence
Возвращает:
IntStream кодовых точек Unicode из этой последовательности
С версии:
9

toCharArray

public char[] toCharArray()
Преобразует эту строку в новый массив символов.
Возвращает:
новый массив символов, длина которого равна длине этой строки и содержимое которого инициализировано последовательностью символов, представленной этой строкой.

format

public static String format(String format, Object... args)
Возвращает отформатированную строку, используя указанную строку формата и аргументы.

Всегда используется локаль, возвращаемая методом Locale.getDefault(Locale.Category) с указанной категорией FORMAT.

Параметры:
format - строка формата
args - аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов переменно и может быть равно нулю. Максимальное число аргументов ограничено максимальной размерностью массива Java, определенной в Спецификации виртуальной машины Java. Поведение при аргументе null зависит от преобразования.
Возвращает:
отформатированную строку
Выбрасывает:
IllegalFormatException - если строка формата содержит недопустимый синтаксис, спецификатор формата несовместим с указанными аргументами, аргументов недостаточно для данной строки формата или возникли другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Подробности спецификации класса formatter.
С версии:
1.5
См. также:
  • Formatter

format

public static String format(Locale l, String format, Object... args)
Возвращает отформатированную строку, используя указанную локаль, строку формата и аргументы.
Параметры:
l - локаль, используемая при форматировании. Если l равно null, локализация не применяется.
format - строка формата
args - аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов переменно и может быть равно нулю. Максимальное число аргументов ограничено максимальной размерностью массива Java, определенной в Спецификации виртуальной машины Java. Поведение при аргументе null зависит от преобразования.
Возвращает:
отформатированную строку
Выбрасывает:
IllegalFormatException - если строка формата содержит недопустимый синтаксис, спецификатор формата несовместим с указанными аргументами, аргументов недостаточно для данной строки формата или возникли другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Подробности спецификации класса formatter
С версии:
1.5
См. также:
  • Formatter

formatted

public String formatted(Object... args)
Выполняет форматирование, используя эту строку в качестве строки формата и переданные аргументы.
Требования к реализации:
Этот метод эквивалентен String.format(this, args).
Параметры:
args - аргументы, на которые ссылаются спецификаторы формата в этой строке.
Возвращает:
отформатированную строку
С версии:
15
См. также:
  • format(String,Object...)
  • Formatter

valueOf

public static String valueOf(Object obj)
Возвращает строковое представление аргумента Object.
Параметры:
obj - объект типа Object.
Возвращает:
если аргумент равен null, возвращается строка, равная "null"; в противном случае возвращается значение obj.toString().
См. также:
  • Object.toString()

valueOf

public static String valueOf(char[] data)
Возвращает строковое представление аргумента — массива char. Содержимое массива символов копируется; последующее изменение массива символов не влияет на возвращаемую строку.

Содержимое строки не определено, если массив символов изменяется во время создания строки.

Параметры:
data - массив символов.
Возвращает:
объект String, содержащий символы массива символов.

valueOf

public static String valueOf(char[] data, int offset, int count)
Возвращает строковое представление определенного подмассива аргумента — массива char.

Аргумент offset — индекс первого символа подмассива. Аргумент count задает длину подмассива. Содержимое подмассива копируется; последующее изменение массива символов не влияет на возвращаемую строку.

Содержимое строки не определено, если массив символов изменяется во время создания строки.

Параметры:
data - массив символов.
offset - начальное смещение подмассива.
count - длина подмассива.
Возвращает:
объект String, содержащий символы указанного подмассива массива символов.
Выбрасывает:
IndexOutOfBoundsException - если offset отрицательно, или count отрицательно, или offset+count больше, чем data.length.

copyValueOf

public static String copyValueOf(char[] data, int offset, int count)
Эквивалентен valueOf(char[], int, int).
Параметры:
data - массив символов.
offset - начальное смещение подмассива.
count - длина подмассива.
Возвращает:
объект String, содержащий символы указанного подмассива массива символов.
Выбрасывает:
IndexOutOfBoundsException - если offset отрицательно, или count отрицательно, или offset+count больше, чем data.length.

copyValueOf

public static String copyValueOf(char[] data)
Эквивалентен valueOf(char[]).
Параметры:
data - массив символов.
Возвращает:
объект String, содержащий символы массива символов.

valueOf

public static String valueOf(boolean b)
Возвращает строковое представление аргумента boolean.
Параметры:
b - значение типа boolean.
Возвращает:
если аргумент равен true, возвращается строка, равная "true"; в противном случае возвращается строка, равная "false".

valueOf

public static String valueOf(char c)
Возвращает строковое представление аргумента char.
Параметры:
c — char.
Возвращает:
строку длины 1, единственным символом которой является аргумент c.

valueOf

public static String valueOf(int i)
Возвращает строковое представление аргумента int.

Представление в точности совпадает с возвращаемым методом Integer.toString с одним аргументом.

Параметры:
i — int.
Возвращает:
строковое представление аргумента int.
См. также:
  • Integer.toString(int, int)

valueOf

public static String valueOf(long l)
Возвращает строковое представление аргумента long.

Представление в точности совпадает с возвращаемым методом Long.toString с одним аргументом.

Параметры:
l — long.
Возвращает:
строковое представление аргумента long.
См. также:
  • Long.toString(long)

valueOf

public static String valueOf(float f)
Возвращает строковое представление аргумента float.

Представление в точности совпадает с возвращаемым методом Float.toString с одним аргументом.

Параметры:
f — float.
Возвращает:
строковое представление аргумента float.
См. также:
  • Float.toString(float)

valueOf

public static String valueOf(double d)
Возвращает строковое представление аргумента double.

Представление в точности совпадает с возвращаемым методом Double.toString с одним аргументом.

Параметры:
d — double.
Возвращает:
строковое представление аргумента double.
См. также:
  • Double.toString(double)

intern

public String intern()
Возвращает каноническое представление строкового объекта.

Класс String приватно поддерживает пул строк, изначально пустой.

При вызове метода intern, если пул уже содержит строку, равную этому объекту String согласно методу equals(Object), возвращается строка из пула. В противном случае этот объект String добавляется в пул, и возвращается ссылка на этот объект String.

Следовательно, для любых двух строк s и t s.intern() == t.intern() является true тогда и только тогда, когда s.equals(t) является true.

Все строковые литералы и константные выражения со значениями-строками интернируются. Строковые литералы определены в разделе 3.10.5 документа Спецификация языка Java.

Возвращает:
строку с тем же содержимым, что и у этой строки, гарантированно взятую из пула уникальных строк.

repeat

public String repeat(int count)
Возвращает строку, значение которой представляет собой конкатенацию этой строки, повторенной count раз.

Если эта строка пуста или значение count равно нулю, возвращается пустая строка.

Параметры:
count — количество повторений
Возвращает:
Строку, состоящую из этой строки, повторенной count раз, или пустую строку, если эта строка пуста или значение count равно нулю
Выбрасывает:
IllegalArgumentException — если значение count отрицательное.
Начиная с версии:
11

describeConstable

public Optional<String> describeConstable()
Возвращает Optional, содержащий номинальный дескриптор этого экземпляра, которым является сам экземпляр.
Определено в:
describeConstable в интерфейсе Constable
Возвращает:
Optional, описывающий экземпляр String
Начиная с версии:
12

resolveConstantDesc

public String resolveConstantDesc(MethodHandles.Lookup lookup)
Разрешает этот экземпляр как ConstantDesc; результатом является сам экземпляр.
Определено в:
resolveConstantDesc в интерфейсе ConstantDesc
Параметры:
lookup — игнорируется
Возвращает:
экземпляр String
Начиная с версии:
12

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, концептуальные обзоры, определения терминов, обходные решения и работающие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/String.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API