Spec-Zone.ru › OpenJDK 27

Класс 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).

Сравнение строк и регистронезависимое сопоставление

Существует несколько способов сравнения значений String; выберите способ, семантика которого соответствует вашей задаче:

  • Точное совпадение содержимого — equals(Object) проверяет, содержат ли две строки одинаковую последовательность элементов кода UTF-16 типа char. Это строгое сравнение с учётом регистра, подходящее для точного сопоставления, хеширования и ситуаций, требующих побитовой стабильности.
  • Простое сравнение без учёта регистра — equalsIgnoreCase(String) (а также соответствующие методы compareToIgnoreCase(String) и CASE_INSENSITIVE_ORDER) выполняет сравнение по отдельным кодовым точкам, не зависящее от локали, используя Character.toUpperCase(int) и Character.toLowerCase(int). Этот способ удобен для многих распространённых проверок без учёта регистра.
  • Эквивалентность после Unicode-преобразования регистра — equalsFoldCase(String) (а также соответствующие методы compareToFoldCase(String) и UNICODE_CASEFOLD_ORDER) реализуют правила Unicode для полного преобразования регистра, определённые в файле Unicode CaseFolding.txt. Преобразование регистра не зависит от локали и языка и может отображать одну кодовую точку в несколько кодовых точек (отображения 1:M). Например, немецкая эсцет (U+00DF) преобразуется в последовательность "ss". Используйте эти методы, когда требуется соответствующее Unicode сопоставление без учёта регистра, поиск или упорядочение.

Если не указано иное, методы сравнения строк не учитывают локаль. Класс 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.
static final Comparator<String> UNICODE_CASEFOLD_ORDER
Компаратор, упорядочивающий объекты String так же, как это делает compareToFoldCase().

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

Конструктор Описание
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 compareToFoldCase(String str)
Сравнивает две строки в лексикографическом порядке с использованием регистронезависимого сопоставления Unicode.
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, содержащий номинальный дескриптор этого экземпляра, которым является сам экземпляр.
int encodedLength(Charset cs)
Возвращает длину в байтах этого String, закодированного с использованием заданной Charset.
boolean endsWith(String suffix)
Проверяет, заканчивается ли эта строка указанным суффиксом.
boolean equals(Object anObject)
Сравнивает эту строку с указанным объектом.
boolean equalsFoldCase(String anotherString)
Проверяет равенство этого String другому String с использованием регистронезависимого сопоставления Unicode.
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()
Возвращает каноническое представление объекта String.
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()
Возвращает строку, значением которой является эта строка, с управляющими последовательностями, преобразованными так же, как в строковом литерале.
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
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
protected void finalize()
Устарело, подлежит удалению: этот элемент API может быть удален в будущей версии.
Финализация устарела и подлежит удалению в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания, либо до истечения определенного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания, либо до истечения определенного промежутка реального времени.

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

CASE_INSENSITIVE_ORDER

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

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

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

UNICODE_CASEFOLD_ORDER

public static final Comparator<String> UNICODE_CASEFOLD_ORDER
Компаратор, упорядочивающий объекты String так же, как compareToFoldCase().
Начиная с версии:
26
См. также:
  • compareToFoldCase(String)

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

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 — кодировка, используемая для кодирования String
Возвращает:
Полученный массив байтов
Начиная с версии:
1.6

getBytes

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

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

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

encodedLength

public int encodedLength(Charset cs)
Возвращает длину в байтах этой String, закодированной с помощью указанной Charset.

Возвращаемая длина учитывает замену последовательностей некорректных входных данных и неотображаемых символов массивом байтов замены по умолчанию для кодировки. Результат будет таким же, как значение, возвращаемое методом getBytes(cs).length.

Примечание к API:
Этот метод обеспечивает производительность, эквивалентную или превосходящую производительность метода getBytes(cs).length.
Параметры:
cs — Charset, используемая для вычисления длины
Возвращает:
длину в байтах этой String, закодированной с помощью указанной Charset
Начиная с версии:
27

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)
  • equalsFoldCase(String)
  • codePoints()

equalsFoldCase

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

Приведение регистра определено в стандарте Unicode в документе CaseFolding.txt и включает соответствия 1:M. Например, "Fuß".equalsFoldCase("FUSS") возвращает true, поскольку символ U+00DF (эсцет) при приведении регистра преобразуется в "ss".

Приведение регистра не зависит от локали и языка, в отличие от преобразований с учетом локали, таких как toLowerCase() или toUpperCase(). Оно предназначено для сопоставления без учета регистра, поиска и индексирования.

Примечание к API:
Этот метод является совместимой со стандартом Unicode альтернативой методу equalsIgnoreCase(String). Он реализует полное приведение регистра, определенное стандартом Unicode, которое может отличаться от более простого посимвольного преобразования, выполняемого методом equalsIgnoreCase. Например:
String a = "Fuß";
String b = "FUSS";
boolean equalsFoldCase = a.equalsFoldCase(b);       // returns true
boolean equalsIgnoreCase = a.equalsIgnoreCase(b);   // returns false
Параметры:
anotherString — String, с которой сравнивается эта String
Возвращает:
true, если указанный объект не равен null и представляет ту же последовательность символов, что и эта строка, при приведении регистра Unicode; в противном случае — false.
Начиная с версии:
26
Внешние спецификации
  • Сопоставление без учета регистра Unicode
См. также:
  • compareToFoldCase(String)
  • equalsIgnoreCase(String)

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 для сравнения.
Возвращает:
отрицательное целое число, ноль или положительное целое число, если указанная строка больше, равна или меньше этой строки соответственно, без учета регистра.
Начиная с версии:
1.2
См. также:
  • Collator
  • codePoints()
  • compareToFoldCase(String)

compareToFoldCase

public int compareToFoldCase(String str)
Сравнивает две строки в лексикографическом порядке, используя приведение регистра Unicode. Этот метод возвращает целое число, знак которого совпадает со знаком результата вызова compareTo для строк после приведения регистра Unicode. Приведение регистра Unicode устраняет различия регистра в соответствии со стандартом Unicode, используя соответствия, определенные в документе CaseFolding.txt, включая соответствия 1:M, такие как "ß" → "ss"}.

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

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

Примечание к API:
Этот метод является совместимой со стандартом Unicode альтернативой методу compareToIgnoreCase(String). Он реализует полное приведение регистра, определенное стандартом Unicode, которое может отличаться от более простого посимвольного преобразования, выполняемого методом compareToIgnoreCase. Например:
String a = "Fuß";
String b = "FUSS";
int cmpFoldCase = a.compareToFoldCase(b);     // returns 0
int cmpIgnoreCase = a.compareToIgnoreCase(b); // returns > 0
Параметры:
str — String для сравнения.
Возвращает:
отрицательное целое число, ноль или положительное целое число, если указанная строка больше, равна или меньше этой строки соответственно, без учета регистра посредством его приведения.
Начиная с версии:
26
Внешние спецификации
  • Сопоставление без учета регистра Unicode
См. также:
  • Collator
  • compareToIgnoreCase(String)
  • equalsFoldCase(String)

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)
Возвращает индекс первого вхождения указанного символа в этой строке. Если символ со значением ch встречается в последовательности символов, представленной этим объектом String, возвращается индекс (в кодовых единицах 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). Например, у String s вызов 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). Например, для String s и непустого значения 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" при следующих значениях параметров даёт указанные результаты:

Split example showing regex, limit, and result
Регулярное выражение Ограничение Результат
: 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" при следующих значениях параметров дают указанные результаты:

Split example showing regex, limit, and result
Регулярное выражение Ограничение Результат
:+ 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" при использовании следующих выражений даёт указанные результаты:

Split examples showing regex and result
Регулярное выражение Результат
: { "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. Поскольку преобразования регистра не всегда соответствуют отображению «один символ в один символ», длины результирующей 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. Поскольку преобразования регистра не всегда соответствуют отображению «один символ в один символ», длины результирующей String и этой String могут различаться.

Примеры преобразований регистра, зависящих от локали, и преобразований «один во многие» приведены в следующей таблице:

Примеры преобразований регистра, зависящих от локали, и преобразований «один во многие». Указаны код языка локали, буквы в нижнем и верхнем регистре и описание.
Код языка локали Нижний регистр Верхний регистр Описание
tr (турецкий) \u0069 \u0130 строчная буква i -> заглавная буква I с точкой сверху
tr (турецкий) \u0131 \u0049 строчная буква i без точки -> заглавная буква I
(все) \u00df \u0053 \u0053 строчная буква эсцет -> две буквы: 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, 2026, 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.

Spec-Zone.ru

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