Класс String

Все реализуемые интерфейсы:
Serializable, CharSequence, Comparable<String>
public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence

Класс String представляет собой строковые значения. Все строковые литералы в программах Java, такие как "abc", реализуются как экземпляры этого класса.

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

String str = "abc";

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

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

Вот несколько дополнительных примеров использования строк:

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

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

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

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

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

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

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

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

Поля

Модификатор и тип Поле Описание
static Comparator<String> CASE_INSENSITIVE_ORDER

Компаратор, который упорядочивает объекты String по compareToIgnoreCase.

Конструкторы

Конструктор Описание
String()

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

String​(byte[] bytes)

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

String​(byte[] ascii, int hibyte)

Устарело.

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

String​(byte[] bytes, int offset, int length)

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

String​(byte[] ascii, int hibyte, int offset, int count)

Устарело.

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

String​(byte[] bytes, int offset, int length, String charsetName)

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

String​(byte[] bytes, int offset, int length, Charset charset)

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

String​(byte[] bytes, String charsetName)

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

String​(byte[] bytes, Charset charset)

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

String​(char[] value)

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

String​(char[] value, int offset, int count)

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

String​(int[] codePoints, int offset, int count)

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

String​(String original)

Инициализирует вновь созданный объект String так, что он представляет ту же последовательность символов, что и аргумент; другими словами, вновь созданная строка является копией аргументной строки.

String​(StringBuffer buffer)

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

String​(StringBuilder builder)

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

Методы

Модификатор и тип Метод Описание
char charAt​(int index)

Возвращает значение char по указанному индексу.

IntStream chars()

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

int codePointAt​(int index)

Возвращает символ (кодовую точку Юникода) по указанному индексу.

int codePointBefore​(int index)

Возвращает символ (кодовую точку Юникода) перед указанным индексом.

int codePointCount​(int beginIndex, int endIndex)

Возвращает количество кодовых точек Юникода в указанном текстовом диапазоне этой String.

IntStream codePoints()

Возвращает поток значений кодовых точек из этой последовательности.

int compareTo​(String anotherString)

Сравнивает две строки лексикографически.

int compareToIgnoreCase​(String str)

Сравнивает две строки лексикографически, игнорируя различия в регистре.

String concat​(String str)

Конкатенирует указанную строку в конец этой строки.

boolean contains​(CharSequence s)

Возвращает true, если и только если эта строка содержит указанную последовательность значений char.

boolean contentEquals​(CharSequence cs)

Сравнивает эту строку с указанным CharSequence.

boolean contentEquals​(StringBuffer sb)

Сравнивает эту строку с указанным StringBuffer.

static String copyValueOf​(char[] data)

Эквивалентно valueOf(char[]).

static String copyValueOf​(char[] data, int offset, int count)

Эквивалентно valueOf(char[], int, int).

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)

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

byte[] getBytes()

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

void getBytes​(int srcBegin, int srcEnd, byte[] dst, int dstBegin)

Устарело.

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

byte[] getBytes​(String charsetName)

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

byte[] getBytes​(Charset charset)

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

void getChars​(int srcBegin, int srcEnd, char[] dst, int dstBegin)

Копирует символы из этой строки в целевой массив символов.

int hashCode()

Возвращает хэш-код для этой строки.

int indexOf​(int ch)

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

int indexOf​(int ch, int fromIndex)

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

int indexOf​(String str)

Возвращает индекс в этой строке первой встречи указанной подстроки.

int indexOf​(String str, int fromIndex)

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

String intern()

Возвращает каноническое представление объекта строки.

boolean isBlank()

Возвращает true, если строка пуста или содержит только white space кодовые точки, в противном случае 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[] split​(String regex)

Разделяет эту строку по соответствиям заданного регулярного выражения.

String[] split​(String regex, int limit)

Разделяет эту строку по соответствиям заданного регулярного выражения.

boolean startsWith​(String prefix)

Проверяет, начинается ли эта строка с указанного префикса.

boolean startsWith​(String prefix, int toffset)

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

String strip()

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

String stripLeading()

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

String stripTrailing()

Возвращает строку, значение которой равно этой строке, со всеми конечными white space удалёнными.

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.

String trim()

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

static String valueOf​(boolean b)

Возвращает строковое представление аргумента boolean.

static String valueOf​(char c)

Возвращает строковое представление аргумента char.

static String valueOf​(char[] data)

Возвращает строковое представление аргумента char массив.

static String valueOf​(char[] data, int offset, int count)

Возвращает строковое представление определённого подмассива аргумента char массив.

static String valueOf​(double d)

Возвращает строковое представление аргумента double.

static String valueOf​(float f)

Возвращает строковое представление аргумента float.

static String valueOf​(int i)

Возвращает строковое представление аргумента int.

static String valueOf​(long l)

Возвращает строковое представление аргумента long.

static String valueOf​(Object obj)

Возвращает строковое представление аргумента Object.

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

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

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

CASE_INSENSITIVE_ORDER

public static final Comparator<String> CASE_INSENSITIVE_ORDER

Сравнительный объект, который упорядочивает объекты String по compareToIgnoreCase. Этот сравнительный объект сериализуется.

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

Since:
1.2
See Also:
Collator

Конструкторы

String

public String()

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

String

public String(String original)

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

Параметры:
original - A String

String

public String(char[] value)

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

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

String

public String(char[] value,
              int offset,
              int count)

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

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

String

public String(int[] codePoints,
              int offset,
              int count)

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

Параметры:
codePoints - Массив, являющийся источником кодовых точек Юникода
offset - Начальный смещение
count - Длина
Исключения:
IllegalArgumentException - Если найдена какая-либо некорректная кодовая точка Юникода в 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, имя набора символов или использующие системный набор символов по умолчанию.

Выделяет новый String на основе подмассива массива целочисленных значений с 8 битами.

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

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

Параметры:
ascii - Байты, которые необходимо преобразовать в символы
hibyte - Старшие 8 бит каждого 16-битного блока кода Юникода
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, имя набора символов или использующие системный набор символов по умолчанию.

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

c == (char)(((hibyte & 0xff) << 8)
                    | (b & 0xff))

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

String

public String(byte[] bytes,
              int offset,
              int length,
              String charsetName)
       throws UnsupportedEncodingException

Конструирует новый String, декодируя указанный подмассив байтов с использованием указанного набора символов. Длина нового String является функцией набора символов и, следовательно, может не совпадать с длиной подмассива.

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

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

String

public String(byte[] bytes,
              int offset,
              int length,
              Charset charset)

Конструирует новый String, декодируя указанный подмассив байтов с использованием указанного набора символов. Длина нового String является функцией набора символов и, следовательно, может не совпадать с длиной подмассива.

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

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

String

public String(byte[] bytes,
              String charsetName)
       throws UnsupportedEncodingException

Конструирует новый String, декодируя указанный массив байтов с использованием указанного набора символов. Длина нового String является функцией набора символов и, следовательно, может не совпадать с длиной массива байтов.

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

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

String

public String(byte[] bytes,
              Charset charset)

Конструирует новый String, декодируя указанный массив байтов с использованием указанного набора символов. Длина нового String является функцией набора символов и, следовательно, может не совпадать с длиной массива байтов.

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

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

String

public String(byte[] bytes,
              int offset,
              int length)

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

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

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

String

public String(byte[] bytes)

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

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

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

String

public String(StringBuffer buffer)

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

Параметры:
buffer - Буфер строк StringBuffer

String

public String(StringBuilder builder)

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

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

Параметры:
builder - Билдер строк StringBuilder
С:
1.5

Методы

length

public int length()

Возвращает длину этой строки. Длина равна количеству единиц кода Юникода в строке.

Определено в:
length в интерфейсе CharSequence
Возвращает:
длину последовательности символов, представленной этим объектом.

isEmpty

public boolean isEmpty()

Возвращает true тогда и только тогда, когда length() равна 0.

Возвращает:
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. Таким образом, длина (в chars) текстового диапазона составляет 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(), который использует системную кодировку по умолчанию.

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

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

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

equals

public boolean equals(Object anObject)

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

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

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

contentEquals

public boolean contentEquals(StringBuffer sb)

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

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

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

contentEquals

public boolean contentEquals(CharSequence cs)

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

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

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

equalsIgnoreCase

public boolean equalsIgnoreCase(String anotherString)

Сравнивает эту String с другой String, игнорируя регистр. Две строки считаются равными, игнорируя регистр, если они имеют одинаковую длину и соответствующие символы в двух строках равны, игнорируя регистр.

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

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

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

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

compareTo

public int compareTo(String anotherString)

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

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

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

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

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

compareToIgnoreCase

public int compareToIgnoreCase(String str)

Сравнивает две строки лексикографически, игнорируя различия в регистре. Этот метод возвращает целое число, знак которого соответствует вызову compareTo с нормализованными версиями строк, где различия в регистре устранены вызовом Character.toLowerCase(Character.toUpperCase(character)) для каждого символа.

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

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

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 обеспечивает сравнение, чувствительное к локали.

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

regionMatches

public boolean regionMatches(boolean ignoreCase,
                             int toffset,
                             String other,
                             int ooffset,
                             int len)

Проверяет, равны ли две строковые области.

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

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

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

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

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
имеет значение true. Для других значений ch, это наименьшее значение k, для которого:
this.codePointAt(k) == ch
имеет значение true. В любом случае, если такой символ не встречается в этой строке, возвращается -1.

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

indexOf

public int indexOf(int ch,
                   int fromIndex)

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

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

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

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

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

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

lastIndexOf

public int lastIndexOf(int ch)

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

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

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

lastIndexOf

public int lastIndexOf(int ch,
                       int fromIndex)

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

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

lastIndexOf

public int lastIndexOf(String str)

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

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

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

lastIndexOf

public int lastIndexOf(String str,
                       int fromIndex)

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

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

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

substring

public String substring(int beginIndex)

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

Примеры:

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

substring

public String substring(int beginIndex,
                        int endIndex)

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

Примеры:

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

subSequence

public CharSequence subSequence(int beginIndex,
                                int endIndex)

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

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

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

concat

public String concat(String str)

Конкатенирует указанную строку в конец этой строки.

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

Примеры:

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

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, если и только если эта строка содержит указанную последовательность символов.

Параметры:
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 - Последовательность символов, которые нужно заменить
replacement - Последовательность символов-заменителей
Возвращает:
Результат в виде строки
С версии:
1.5

split

public String[] split(String regex,
                      int limit)

Разбивает эту строку по совпадениям с заданным регулярным выражением.

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

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

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

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

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

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

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

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

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

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

split

public String[] split(String regex)

Разбивает эту строку по совпадениям с заданным регулярным выражением.

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

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

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

join

public static String join(CharSequence delimiter,
                          CharSequence... elements)

Возвращает новую строку, составленную из копий CharSequence elements , соединённых копией указанного delimiter.

String message = String.join("-", "Java", "is", "cool");
// message returned is: "Java-is-cool"
Обратите внимание, что если элемент равен null, то добавляется "null".

Параметры:
delimiter - разделитель между элементами
elements - элементы для объединения.
Возвращает:
новую строку, состоящую из elements , разделенных delimiter
Исключение:
NullPointerException - Если delimiter или elements является null
С версии:
1.8
См. также:
StringJoiner

join

public static String join(CharSequence delimiter,
                          Iterable<? extends CharSequence> elements)

Возвращает новую строку, составленную из копий CharSequence elements , соединённых копией указанного delimiter.

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

Set<String> strings =
    new LinkedHashSet<>(List.of("Java", "is", "very", "cool"));
String message = String.join("-", strings);
//message returned is: "Java-is-very-cool"
Обратите внимание, что если отдельный элемент является null, то добавляется "null".

Параметры:
delimiter - последовательность символов, используемая для разделения каждого из elements в результирующей строке
elements - Iterable, элементы которого будут объединены.
Возвращает:
новую строку, составленную из elements аргумента
Исключение:
NullPointerException - Если delimiter или elements является null
С версии:
1.8
См. также:
join(CharSequence,CharSequence...), StringJoiner

toLowerCase

public String toLowerCase(Locale locale)

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

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

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

toLowerCase

public String toLowerCase()

Преобразует все символы в этой String в строчные буквы, используя правила по умолчанию для локали. Это эквивалентно вызову toLowerCase(Locale.getDefault()).

Примечание: Этот метод чувствителен к локали и может давать неожиданные результаты при использовании для строк, которые должны интерпретироваться независимо от локали. Примеры включают идентификаторы языков программирования, ключи протоколов и теги HTML. Например, "TITLE".toLowerCase() в турецкой локали возвращает "t\u0131tle", где '\u0131' — символ строчной латинской буквы i без точки. Чтобы получить правильные результаты для строк, не зависящих от локали, используйте toLowerCase(Locale.ROOT).

Возвращает:
строку, преобразованную в нижний регистр.
См. также:
toLowerCase(Locale)

toUpperCase

public String toUpperCase(Locale locale)

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

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

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

toUpperCase

public String toUpperCase()

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

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

Возвращает:
строку String, преобразованную в верхний регистр.
См. также:
toUpperCase(Locale)

trim

public String trim()

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

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

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

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

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

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

strip

public String strip()

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

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

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

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

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

stripLeading

public String stripLeading()

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

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

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

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

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

stripTrailing

public String stripTrailing()

Возвращает строку, значением которой является эта строка, со всеми конечными white space удалёнными.

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

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

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

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

isBlank

public boolean isBlank()

Возвращает true, если строка пуста или содержит только white space кодовые точки, в противном случае false.

Возвращает:
true, если строка пуста или содержит только white space кодовые точки, в противном случае 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

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 - строка формата
args - Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, дополнительные аргументы игнорируются. Количество аргументов является переменным и может быть нулевым. Максимальное количество аргументов ограничено максимальным размером массива Java, как определено в Спецификации виртуальной машины Java. Поведение для null аргумента зависит от преобразования.
Возвращает:
Отформатированная строка
Выбрасывает:
IllegalFormatException - Если строка формата содержит неправильный синтаксис, спецификатор формата несовместим с заданными аргументами, недостаточно аргументов для заданной строки формата или другие неверные условия. Для спецификации всех возможных ошибок форматирования см. раздел «Подробности» в спецификации класса форматировщика.
С тех пор:
1.5
См. также:
Formatter

format

public static String format(Locale l,
                            String format,
                            Object... args)

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

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

valueOf

public static String valueOf(Object obj)

Возвращает строковое представление аргумента Object.

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

valueOf

public static String valueOf(char[] data)

Возвращает строковое представление аргумента — массива символов char.

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

valueOf

public static String valueOf(char[] data,
                             int offset,
                             int count)

Возвращает строковое представление определенного подмассива аргумента — массива символов char.

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

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

copyValueOf

public static String copyValueOf(char[] data,
                                 int offset,
                                 int count)

Эквивалентно valueOf(char[], int, int).

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

copyValueOf

public static String copyValueOf(char[] data)

Эквивалентно valueOf(char[]).

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

valueOf

public static String valueOf(boolean b)

Возвращает строковое представление аргумента boolean.

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

valueOf

public static String valueOf(char c)

Возвращает строковое представление аргумента — символа char.

Параметры:
c - символ char.
Возвращает:
строка длины 1 содержащая аргумент c в качестве единственного символа.

valueOf

public static String valueOf(int i)

Возвращает строковое представление аргумента — целого числа int.

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

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

valueOf

public static String valueOf(long l)

Возвращает строковое представление аргумента — длинного целого числа long.

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

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

valueOf

public static String valueOf(float f)

Возвращает строковое представление аргумента — числа с плавающей точкой float.

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

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

valueOf

public static String valueOf(double d)

Возвращает строковое представление аргумента — числа с плавающей точкой двойной точности double.

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

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

intern

public String intern()

Возвращает каноническое представление объекта строки.

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

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

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

Все литеральные строки и строковые константные выражения помещаются в пул.

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

repeat

public String repeat(int count)

Возвращает строку, значение которой — результат конкатенации этой строки, повторяемой count раз.

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

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

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

Spec-Zone .ru
спецификации, руководства, описания, API