Spec-Zone.ru › OpenJDK 21

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

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

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

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

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

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

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

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

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

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

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

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

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

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

CASE_INSENSITIVE_ORDER

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

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

Since:
1.2
See Also:
  • Collator

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

String

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

String

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

String

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

String

public String(char[] value, int offset, int count)
Выделяет новый String, содержащий символы из подмассива массива символов-аргумента. Аргумент offset — индекс первого символа подмассива, а аргумент count задаёт длину подмассива. Содержимое подмассива копируется; последующие изменения массива символов не влияют на вновь созданную строку.
Parameters:
value - Массив, являющийся источником символов
offset - Начальный смещение
count - Длина
Throws:
IndexOutOfBoundsException - Если offset отрицательно, count отрицательно или offset больше value.length - count

String

public String(int[] codePoints, int offset, int count)
Выделяет новый String, содержащий символы из подмассива массива кодов Unicode. Аргумент offset — индекс первого кода Unicode подмассива, а аргумент count задаёт длину подмассива. Содержимое подмассива преобразуется в char; последующие изменения массива int не влияют на вновь созданную строку.
Parameters:
codePoints - Массив, являющийся источником кодов Unicode
offset - Начальный смещение
count - Длина
Throws:
IllegalArgumentException - Если в codePoints найдены некорректные коды Unicode
IndexOutOfBoundsException - Если offset отрицательно, count отрицательно или offset больше codePoints.length - count
Since:
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).

Parameters:
ascii - Байты, подлежащие преобразованию в символы
hibyte - Верхние 8 бит каждого 16-битного кода Unicode
offset - Начальный смещение
count - Длина
Throws:
IndexOutOfBoundsException - Если offset отрицательно, count отрицательно или offset больше ascii.length - count
See Also:
  • 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))
 
Parameters:
ascii - Байты, подлежащие преобразованию в символы
hibyte - Верхние 8 бит каждого 16-битного кода Unicode
See Also:
  • 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
Создаёт новую строку, декодируя указанный подмассив байтов с использованием указанного набора символов. Длина новой строки зависит от набора символов и, следовательно, может не совпадать с длиной подмассива.

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

Parameters:
bytes - Байты, подлежащие декодированию в символы
offset - Индекс первого байта для декодирования
length - Количество байтов для декодирования
charsetName - Имя поддерживаемого набора символов
Throws:
UnsupportedEncodingException - Если указанный набор символов не поддерживается
IndexOutOfBoundsException - Если offset отрицательно, length отрицательно или offset больше bytes.length - length
Since:
1.1

String

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

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

Parameters:
bytes - Байты, подлежащие декодированию в символы
offset - Индекс первого байта для декодирования
length - Количество байтов для декодирования
charset - charset для декодирования bytes
Throws:
IndexOutOfBoundsException - Если offset отрицательно, length отрицательно или offset больше bytes.length - length
Since:
1.6

String

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

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

Parameters:
bytes - Байты, подлежащие декодированию в символы
charsetName - Название поддерживаемой кодировки
Throws:
UnsupportedEncodingException - Если указанная кодировка не поддерживается
Since:
1.1

String

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

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

Parameters:
bytes - Байты, подлежащие декодированию в символы
charset - Кодировка, используемая для декодирования байтов
Since:
1.6

String

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

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

Parameters:
bytes - Байты, подлежащие декодированию в символы
offset - Индекс первого байта для декодирования
length - Количество байтов для декодирования
Throws:
IndexOutOfBoundsException - Если offset отрицательно, length отрицательно или offset больше, чем bytes.length - length
Since:
1.1

String

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

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

Parameters:
bytes - Байты, подлежащие декодированию в символы
Since:
1.1

String

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

String

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

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

Parameters:
builder - Билдер строк
Since:
1.5

Методы

length

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

isEmpty

public boolean isEmpty()
Возвращает true если и только если length() равно 0.
Specified by:
isEmpty в интерфейсе CharSequence
Returns:
true если length() равно 0, иначе false
Since:
1.6

charAt

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

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

Specified by:
charAt в интерфейсе CharSequence
Parameters:
index - индекс значения символа.
Returns:
значение символа по указанному индексу этой строки. Первый символ находится по индексу 0.
Throws:
IndexOutOfBoundsException - если аргумент индекса отрицательный или не меньше длины этой строки.

codePointAt

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

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

Parameters:
index - индекс для значений символов
Returns:
значение кода символа по указанному индексу
Throws:
IndexOutOfBoundsException - если аргумент индекса отрицательный или не меньше длины этой строки.
Since:
1.5

codePointBefore

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

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

Parameters:
index - индекс, следующий за символом, который должен быть возвращён
Returns:
значение кода Unicode символа перед данным индексом.
Throws:
IndexOutOfBoundsException - если аргумент индекса меньше 1 или больше длины этой строки.
Since:
1.5

codePointCount

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

смещение по кодовым точкам

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

getBytes

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

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

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

getBytes

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

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

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

getBytes

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

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

Параметры:
charset - Charset для кодирования String
Возвращает:
Результирующий массив байтов
С момента:
1.6

getBytes

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

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

Возвращает:
Результирующий массив байтов
С момента:
1.1

equals

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

Для более тонкого сравнения строк используйте Collator.

Overrides:
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, игнорируя различия в регистре. Две строки считаются равными, игнорируя регистр, если они имеют одинаковую длину и соответствующие кодовые точки Юникода в двух строках равны, игнорируя регистр.

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

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

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

Parameters:
anotherString - Сравниваемая String с этим String
Returns:
true если аргумент не null и он представляет эквивалентную String без учёта регистра; false в противном случае
See Also:
  • equals(Object)
  • codePoints()

compareTo

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

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

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

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

Specified by:
compareTo в интерфейсе Comparable<String>
Parameters:
anotherString - Сравниваемая String.
Returns:
значение 0 если строка-аргумент равна этой строке; значение меньше 0, если эта строка лексикографически меньше строки-аргумента; и значение больше 0, если эта строка лексикографически больше строки-аргумента.

compareToIgnoreCase

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

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

Parameters:
str - Сравниваемая String.
Returns:
отрицательное целое число, ноль или положительное целое число, в зависимости от того, больше ли указанная строка, равна ли она или меньше этой строки, игнорируя различия в регистре.
Since:
1.2
See Also:
  • Collator
  • codePoints()

regionMatches

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

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

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

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

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

regionMatches

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

Подстрока этого String объекта сравнивается с подстрокой аргумента other. Результат — true если эти подстроки представляют последовательности кодовых точек Юникода, которые идентичны, игнорируя регистр, если и только если 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, все пары соответствующих кодовых точек Юникода имеют равные целочисленные значения; или, если ignoreCase равно true, метод Character.toLowerCase( Character.toUpperCase(int)) для всех пар кодовых точек Юникода приводит к получению равных целочисленных значений.

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

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

startsWith

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

startsWith

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

endsWith

public boolean endsWith(String suffix)
Проверяет, заканчивается ли эта строка указанным суффиксом.
Parameters:
suffix - суффикс.
Returns:
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 — длина строки, а ^ обозначает возведение в степень. (Значение хэша пустой строки равно нулю.)
Overrides:
hashCode в классе Object
Returns:
значение кода хэша для этого объекта.
See Also:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(java.lang.Object)

indexOf

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

API Note:
В отличие от substring(int), например, этот метод не выбрасывает исключение, когда fromIndex находится вне допустимого диапазона. Вместо этого он возвращает -1, когда fromIndex больше длины строки. Этот результат сам по себе неотличим от отсутствия ch в строке. Если требуется более строгое поведение, следует рассмотреть indexOf(int, int, int). В случае с String s, например, s.indexOf(ch, fromIndex, s.length()) будет выбрасывать исключение, если fromIndex больше длины строки или отрицательное.
Parameters:
ch - символ (кодовая точка Юникода).
fromIndex - индекс для начала поиска.
Returns:
индекс первого вхождения символа в последовательность символов, представленную этим объектом, которая больше или равна 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 (единицы кода Юникода).

Parameters:
ch - символ (кодовая точка Юникода).
beginIndex - индекс для начала поиска (включительно).
endIndex - индекс для остановки поиска (исключительно).
Returns:
индекс первого вхождения символа в последовательность символов, представленную этим объектом, который больше или равен beginIndex и меньше endIndex, или -1 если символ не встречается.
Throws:
StringIndexOutOfBoundsException - если beginIndex отрицательный, или endIndex больше длины этого String объекта, или beginIndex больше endIndex.
Since:
21

lastIndexOf

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

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

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

содержит

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(java.lang.String). Используйте Matcher.quoteReplacement(java.lang.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(java.lang.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

разделить

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

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

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

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

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

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

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

Строка "boo:and:foo", например, дает следующие результаты с этими параметрами:

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

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

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

splitWithDelimiters

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

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

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

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

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

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

split

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

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

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

Примеры разделения, показывающие регулярное выражение и результат
Регулярное выражение Результат
: { "boo", "and", "foo" }
o { "b", "", ":and:f" }
Параметры:
regex - разделяющее регулярное выражение
Возвращает:
массив строк, вычисленный путём разделения этой строки по совпадениям с заданным регулярным выражением
Исключения:
PatternSyntaxException - если синтаксис регулярного выражения неверен
C момента:
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 - элементы для объединения.
Возвращает:
новая строка, образованная копиями elements, разделенными указанным delimiter
Исключения:
NullPointerException - Если delimiter или elements равно null
C момента:
1.8
См. также:
  • StringJoiner

join

public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
Возвращает новую строку, образованную копиями 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 в результирующей строке
elements - итерируемый объект, элементы которого будут объединены.
Возвращает:
новая строка, составленная из элементов аргумента
Исключения:
NullPointerException - Если delimiter или elements равно null
C момента:
1.8
См. также:
  • join(CharSequence,CharSequence...)
  • StringJoiner

toLowerCase

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

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

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

toUpperCase

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

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

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

toUpperCase

public String toUpperCase()
Преобразует все символы в этой String в верхний регистр, используя правила локали по умолчанию. Этот метод эквивалентен toUpperCase(Locale.getDefault()).
Примечание API:
Этот метод чувствителен к локали и может давать неожиданные результаты, если используется для строк, которые предназначены для интерпретации независимо от локали. Примерами являются идентификаторы языков программирования, ключи протоколов и теги HTML. Например, "title".toUpperCase() в турецкой локали возвращает "T\u0130TLE", где '\u0130' — символ ЗАГЛАВНАЯ БУКВА I С ТОЧКОЙ СВЕРХУ. Чтобы получить правильные результаты для строк, нечувствительных к локали, используйте 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).

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

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

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 , то строка остается без изменений. Однако символы окончания строки всё равно нормализуются.

Parameters:
n - количество ведущих символов пробела для добавления или удаления
Returns:
строка с отступами, измененными и нормализованными символами окончания строки
Since:
12
See Also:
  • 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 ведущих символов пробела, а любые trailing символы пробела удаляются. Пустые строки заменяются пустой строкой.

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

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

translateEscapes

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

Экранированные последовательности переводятся следующим образом;

Перевод
Экранирование Имя Перевод
\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 восьмеричный код эквиваленты кодовых точек
\<line-terminator> продолжение отбросить
Implementation Note:
Этот метод не переводит Unicode-экранирования, такие как "\u2022". Unicode-экранирования переводятся компилятором Java при чтении входных символов и не являются частью спецификации строковых литералов.
Returns:
Строка с переведенными экранированными последовательностями.
Throws:
IllegalArgumentException - при неправильном экранировании.
See Java Language Specification:
3.10.7 Экранированные последовательности
Since:
15

transform

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

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

Type Parameters:
R - тип результата
Parameters:
f - функция для применения
Returns:
результат применения функции к этой строке
Since:
12
See Also:
  • Function

toString

public String toString()
Этот объект (который уже является строкой!) возвращается сам.
Specified by:
toString в интерфейсе CharSequence
Overrides:
toString в классе Object
Returns:
сама строка.

chars

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

codePoints

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

toCharArray

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

форматировать

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

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

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

форматировать

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

форматированный

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 - символьный массив.
Возвращает:
строка, содержащая символы символьного массива.

valueOf

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

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

Параметры:
data - символьный массив.
offset - начальный смещение подмассива.
count - длина подмассива.
Возвращает:
строка, содержащая символы указанного подмассива символьного массива.
Исключения:
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 - длина подмассива.
Возвращает:
строка, содержащая символы указанного подмассива символьного массива.
Исключения:
IndexOutOfBoundsException - если offset отрицательно, или count отрицательно, или offset+count больше, чем data.length.

copyValueOf

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

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

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

Spec-Zone.ru

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