Spec-Zone.ru › OpenJDK 24

Класс 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 включает методы для проверки отдельных символов последовательности, сравнения строк, поиска в строках, извлечения подстрок и создания копии строки с переводом всех символов в верхний или нижний регистр. Преобразование регистра основано на версии стандарта Юникод, указанной классом Character.

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

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

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

Класс String предоставляет методы для работы с кодовыми точками Юникода (т.е. символами), помимо методов для работы с кодовыми единицами Юникода (т.е. значениями 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, содержащий символы из подмассива массива кодовых точек Юникода.
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 в последовательность байтов, используя заданный charset, сохраняя результат в новый массив байтов.
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 обеспечивает чувствительное к региону сравнение.

С момента:
1.2
См. также:
  • Collator

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

String

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

String

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

String

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

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

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

String

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

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

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

String

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

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

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

String

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

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

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

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

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

String

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

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

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

String

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

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

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

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

Строка

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

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

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

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

Строка

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

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

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

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

Строка

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

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

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

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

Строка

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

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

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

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

Строка

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

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

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

Параметры:
bytes - Байты, которые должны быть декодированы в символы
С:
1.1

Строка

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

Строка

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

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

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

Параметры:
builder - Буфер StringBuilder
С:
1.5

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

length

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

isEmpty

public boolean isEmpty()
Возвращает true, если и только если length() равно 0.
Определено в:
isEmpty в интерфейсе CharSequence
Возвращает:
true, если length() равно 0, в противном случае false
С:
1.6

charAt

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

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

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

codePointAt

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

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

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

codePointBefore

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

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

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

codePointCount

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

offsetByCodePoints

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

getChars

public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Копирует символы из этой строки в целевой массив символов.

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

     dstBegin + (srcEnd-srcBegin) - 1
 
Параметры:
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 - Кодировка, которая используется для кодирования String
Возвращает:
Результирующий массив байтов
С тех пор:
1.6

getBytes

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

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

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

equals

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

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

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

contentEquals

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

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

Parameters:
sb - Строка StringBuffer, с которой сравнивается эта String
Returns:
true, если эта String представляет ту же последовательность символов, что и указанная строка StringBuffer; false в противном случае
Since:
1.4

contentEquals

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

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

Parameters:
cs - Последовательность для сравнения с этой String
Returns:
true, если эта String представляет ту же последовательность символов, что и указанная последовательность; false в противном случае
Since:
1.5

equalsIgnoreCase

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

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

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

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

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

compareTo

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

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

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

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

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

compareToIgnoreCase

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

Обратите внимание, что этот метод не учитывает локаль и может привести к неудовлетворительному упорядочению для некоторых локалей. Класс 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 больше длины аргумента other.
  • Существует какое-то неотрицательное целое число 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 обеспечивает сравнение, учитывающее локаль.

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

startsWith

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

startsWith

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

endsWith

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

hashCode

public int hashCode()
Возвращает хэш-код для этой строки. Хэш-код для String объекта вычисляется как
 s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]
 
с использованием арифметики int, где s[i] — i-й символ строки, n — длина строки, а ^ обозначает возведение в степень. (Хэш-значение пустой строки равно нулю.)
Переопределяет:
hashCode в классе Object
Возвращает:
значение хэш-кода для этого объекта.
См. также:
  • Object.equals(java.lang.Object)
  • System.identityHashCode(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.
Параметры:
ch - символ (кодовая точка Юникода).
Возвращает:
индекс первого вхождения символа в последовательность символов, представленную этим объектом, или -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:
В отличие от substring(int), например, этот метод не выбрасывает исключение, когда fromIndex находится вне допустимого диапазона. Вместо этого он возвращает -1, когда fromIndex больше длины строки. Этот результат сам по себе неотличим от отсутствия ch в строке. Если требуется более строгое поведение, следует рассмотреть использование indexOf(int, int, int) . Например, на строке String s, s.indexOf(ch, fromIndex, s.length()) было бы выброшено, если бы fromIndex было больше длины строки или было отрицательным.
Параметры:
ch - символ (кодовая точка Юникода).
fromIndex - индекс, с которого начать поиск.
Возвращает:
индекс первого вхождения символа в последовательность символов, представленную этим объектом, который больше или равен fromIndex, или -1, если символ не встречается.

indexOf

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

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

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

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

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

lastIndexOf

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

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

indexOf

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

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


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

indexOf

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

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


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

indexOf

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

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


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

lastIndexOf

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

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


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

lastIndexOf

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

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


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

substring

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

Примеры:

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

substring

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

Примеры:

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

subSequence

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

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

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

concat

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

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

Примеры:

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

replace

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

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

Примеры:

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

matches

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

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

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

contains

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

replaceFirst

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

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

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

Обратите внимание, что обратные слэши (\) и знаки доллара ($) в строке замены могут привести к результатам, отличным от тех, которые были бы получены, если бы она обрабатывалась как строка замены буквально; см. Matcher.replaceFirst(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 управляет числом применений шаблона и, следовательно, влияет на длину возвращаемого массива.

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

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

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

Строка "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 управляет числом применений шаблона и, следовательно, влияет на длину возвращаемого массива.

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

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

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

разделение

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

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

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

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

соединение

public static String join(CharSequence delimiter, CharSequence... elements)
Возвращает новую строку, состоящую из копий CharSequence elements, соединённых копией указанного delimiter.
Например,

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

join

public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
Возвращает новую String, составленную из копий CharSequence elements, соединенных с копией указанного delimiter.
Например,

     List<String> strings = List.of("Java", "is", "cool");
     String message = String.join(" ", strings);
     // message returned is: "Java is cool"

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

toLowerCase

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

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

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

toLowerCase

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

toUpperCase

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

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

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

toUpperCase

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

trim

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

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

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

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

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

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

strip

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

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

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

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

Returns:
строка, значением которой является эта строка, со всеми начальными и конечными пробелами удалены
Since:
11
See Also:
  • Character.isWhitespace(int)
END_OF_DOCUMENT_MARKER

stripLeading

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

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

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

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

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

stripTrailing

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

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

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

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

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

isBlank

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

lines

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

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

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

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

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

indent

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

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

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

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

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

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

stripIndent

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

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

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

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

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

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

Значение min — это наименьшее из этих подсчётов.

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

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

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

translateEscapes

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

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

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

transform

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

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

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

toString

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

chars

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

codePoints

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

toCharArray

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

format

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

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

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

format

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

formatted

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

valueOf

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

valueOf

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

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

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

valueOf

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

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

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

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

copyValueOf

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

copyValueOf

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

valueOf

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

valueOf

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

valueOf

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

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

Parameters:
i - целое число.
Returns:
строковое представление аргумента типа int.
See Also:
  • Integer.toString(int, int)

valueOf

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

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

Parameters:
l - целое число типа long.
Returns:
строковое представление аргумента типа long.
See Also:
  • Long.toString(long)

valueOf

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

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

Parameters:
f - число с плавающей точкой.
Returns:
строковое представление аргумента типа float.
See Also:
  • Float.toString(float)

valueOf

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

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

Parameters:
d - число с плавающей точкой двойной точности.
Returns:
строковое представление аргумента типа double.
See Also:
  • 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.

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

repeat

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

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

Parameters:
count - количество повторений
Returns:
строка, составленная из этой строки, повторяемой count раз, или пустая строка, если эта строка пустая или счётчик равен нулю
Throws:
IllegalArgumentException - если count отрицательно.
Since:
11

describeConstable

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

resolveConstantDesc

public String resolveConstantDesc(MethodHandles.Lookup lookup)
Разрешает этот экземпляр как ConstantDesc, результатом чего является сам экземпляр.
Specified by:
resolveConstantDesc в интерфейсе ConstantDesc
Parameters:
lookup - игнорируется
Returns:
экземпляр String
Since:
12

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

Spec-Zone.ru

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