Класс String
- Все реализуемые интерфейсы:
Serializable, CharSequence, Comparable<String>, Constable, ConstantDesc
public final class String extends Object implements Serializable, Comparable<String>, CharSequence, Constable, ConstantDesc
String представляет строки символов. Все строковые литералы в программах на Java, такие как "abc", реализуются как экземпляры этого класса. Строки неизменяемы: их значения нельзя изменить после создания. Поскольку объекты String неизменяемы, ими можно совместно пользоваться. Например:
String str = "abc";
эквивалентно:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
Вот ещё несколько примеров использования строк:
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2, 3);
String d = cde.substring(1, 2);
Класс String включает методы для проверки отдельных символов последовательности, сравнения строк, поиска в строках, извлечения подстрок и создания копии строки, в которой все символы переведены в верхний или нижний регистр. Преобразование регистра основано на версии стандарта Unicode, указанной в классе Character.
Язык Java предоставляет специальную поддержку оператору конкатенации строк ( + ) и преобразованию других объектов в строки. Дополнительные сведения о конкатенации строк и преобразовании см. в Спецификации языка Java.
Если не указано иное, передача аргумента null конструктору или методу этого класса приводит к выбрасыванию исключения NullPointerException.
String представляет строку в формате UTF-16, в котором дополнительные символы представлены суррогатными парами (дополнительные сведения см. в разделе Представления символов Unicode класса Character). Значения индексов относятся к элементам кода char, поэтому дополнительный символ занимает две позиции в String.
Класс String предоставляет методы для работы с кодовыми точками Unicode (то есть символами), а также методы для работы с элементами кода Unicode (то есть значениями char).
Сравнение строк и регистронезависимое сопоставление
Существует несколько способов сравнения значений String; выберите способ, семантика которого соответствует вашей задаче:
-
Точное совпадение содержимого —
equals(Object)проверяет, содержат ли две строки одинаковую последовательность элементов кода UTF-16 типа char. Это строгое сравнение с учётом регистра, подходящее для точного сопоставления, хеширования и ситуаций, требующих побитовой стабильности. -
Простое сравнение без учёта регистра —
equalsIgnoreCase(String)(а также соответствующие методыcompareToIgnoreCase(String)иCASE_INSENSITIVE_ORDER) выполняет сравнение по отдельным кодовым точкам, не зависящее от локали, используяCharacter.toUpperCase(int)иCharacter.toLowerCase(int). Этот способ удобен для многих распространённых проверок без учёта регистра. -
Эквивалентность после Unicode-преобразования регистра —
equalsFoldCase(String)(а также соответствующие методыcompareToFoldCase(String)иUNICODE_CASEFOLD_ORDER) реализуют правила Unicode для полного преобразования регистра, определённые в файле Unicode CaseFolding.txt. Преобразование регистра не зависит от локали и языка и может отображать одну кодовую точку в несколько кодовых точек (отображения 1:M). Например, немецкая эсцет (U+00DF) преобразуется в последовательность"ss". Используйте эти методы, когда требуется соответствующее Unicode сопоставление без учёта регистра, поиск или упорядочение.
Если не указано иное, методы сравнения строк не учитывают локаль. Класс Collator предоставляет методы для более точного сравнения строк с учётом локали.
- Примечание по реализации:
- Реализация оператора конкатенации строк остаётся на усмотрение компилятора Java при условии, что компилятор в конечном итоге соответствует Спецификации языка Java. Например, компилятор
javacможет реализовать оператор с помощьюStringBuffer,StringBuilderилиjava.lang.invoke.StringConcatFactoryв зависимости от версии JDK. Преобразование строк обычно реализуется методомtoString, определённым вObjectи унаследованным всеми классами в Java. - См. Спецификацию языка Java:
- 15.18.1 Оператор конкатенации строк +
- Начиная с версии:
- 1.0
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final Comparator |
CASE_INSENSITIVE_ORDER |
Компаратор, упорядочивающий объекты String так же, как это делает compareToIgnoreCase. |
static final Comparator |
UNICODE_CASEFOLD_ORDER |
Компаратор, упорядочивающий объекты String так же, как это делает compareToFoldCase(). |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
String() |
Инициализирует вновь созданный объект String так, чтобы он представлял пустую последовательность символов. |
String |
Создает новый String, декодируя указанный массив байтов с использованием default charset. |
String |
Устарело. Этот метод некорректно преобразует байты в символы. |
String |
Создает новый String, декодируя указанный подмассив байтов с использованием default charset. |
String |
Устарело. Этот метод некорректно преобразует байты в символы. |
String |
Создает новый String, декодируя указанный подмассив байтов с использованием заданной кодировки. |
String |
Создает новый String, декодируя указанный подмассив байтов с использованием заданной кодировки. |
String |
Создает новый String, декодируя указанный массив байтов с использованием заданной кодировки. |
String |
Создает новый String, декодируя указанный массив байтов с использованием заданной кодировки. |
String |
Выделяет память для нового String, представляющего последовательность символов, которая в данный момент содержится в аргументе — массиве символов. |
String |
Выделяет память для нового String, содержащего символы из подмассива аргумента — массива символов. |
String |
Выделяет память для нового String, содержащего символы из подмассива аргумента — массива кодовых точек Unicode. |
String |
Инициализирует вновь созданный объект String так, чтобы он представлял ту же последовательность символов, что и аргумент; иными словами, вновь созданная строка является копией строки-аргумента. |
String |
Выделяет память для новой строки, содержащей последовательность символов, которая в данный момент содержится в аргументе — строковом буфере. |
String |
Выделяет память для новой строки, содержащей последовательность символов, которая в данный момент содержится в аргументе — построителе строк. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
char |
charAt |
Возвращает значение char по указанному индексу. |
IntStream |
chars() |
Возвращает поток значений int, дополняя значения char из этой последовательности нулями слева. |
int |
codePointAt |
Возвращает символ (кодовую точку Unicode) по указанному индексу. |
int |
codePointBefore |
Возвращает символ (кодовую точку Unicode) перед указанным индексом. |
int |
codePointCount |
Возвращает количество кодовых точек Unicode в указанном текстовом диапазоне этого String. |
IntStream |
codePoints() |
Возвращает поток значений кодовых точек из этой последовательности. |
int |
compareTo |
Сравнивает две строки в лексикографическом порядке. |
int |
compareToFoldCase |
Сравнивает две строки в лексикографическом порядке с использованием регистронезависимого сопоставления Unicode. |
int |
compareToIgnoreCase |
Сравнивает две строки в лексикографическом порядке, игнорируя различия в регистре. |
String |
concat |
Присоединяет указанную строку в конец этой строки. |
boolean |
contains |
Возвращает true тогда и только тогда, когда эта строка содержит указанную последовательность значений char. |
boolean |
contentEquals |
Сравнивает эту строку с указанным CharSequence. |
boolean |
contentEquals |
Сравнивает эту строку с указанным StringBuffer. |
static String |
copyValueOf |
Эквивалентен valueOf(char[]). |
static String |
copyValueOf |
Эквивалентен valueOf(char[], int, int). |
Optional |
describeConstable() |
Возвращает Optional, содержащий номинальный дескриптор этого экземпляра, которым является сам экземпляр. |
int |
encodedLength |
Возвращает длину в байтах этого String, закодированного с использованием заданной Charset. |
boolean |
endsWith |
Проверяет, заканчивается ли эта строка указанным суффиксом. |
boolean |
equals |
Сравнивает эту строку с указанным объектом. |
boolean |
equalsFoldCase |
Проверяет равенство этого String другому String с использованием регистронезависимого сопоставления Unicode. |
boolean |
equalsIgnoreCase |
Сравнивает этот String с другим String, игнорируя регистр. |
static String |
format |
Возвращает отформатированную строку, используя указанную строку формата и аргументы. |
static String |
format |
Возвращает отформатированную строку, используя указанную локаль, строку формата и аргументы. |
String |
formatted |
Форматирует строку, используя ее в качестве строки формата и переданные аргументы. |
byte[] |
getBytes() |
Кодирует этот String в последовательность байтов с использованием default charset и сохраняет результат в новом массиве байтов. |
void |
getBytes |
Устарело. Этот метод некорректно преобразует символы в байты. |
byte[] |
getBytes |
Кодирует этот String в последовательность байтов с использованием кодировки с указанным именем и сохраняет результат в новом массиве байтов. |
byte[] |
getBytes |
Кодирует этот String в последовательность байтов с использованием заданной кодировки и сохраняет результат в новом массиве байтов. |
void |
getChars |
Копирует символы из этой последовательности в указанный массив назначения. |
int |
hashCode() |
Возвращает хеш-код этой строки. |
String |
indent |
Изменяет отступ каждой строки этой строки в соответствии со значением n и нормализует символы окончания строк. |
int |
indexOf |
Возвращает индекс первого вхождения указанного символа в этой строке. |
int |
indexOf |
Возвращает индекс первого вхождения указанного символа в этой строке, начиная поиск с указанного индекса. |
int |
indexOf |
Возвращает индекс первого вхождения указанного символа в этой строке, начиная поиск с beginIndex и останавливаясь перед endIndex. |
int |
indexOf |
Возвращает индекс первого вхождения указанной подстроки в этой строке. |
int |
indexOf |
Возвращает индекс первого вхождения указанной подстроки в этой строке, начиная с указанного индекса. |
int |
indexOf |
Возвращает индекс первого вхождения указанной подстроки в заданном диапазоне индексов строки this. |
String |
intern() |
Возвращает каноническое представление объекта String. |
boolean |
isBlank() |
Возвращает true, если строка пуста или содержит только кодовые точки пробельных символов; в противном случае возвращает false. |
boolean |
isEmpty() |
|
static String |
join |
Возвращает новую строку, составленную из копий CharSequence elements, соединенных копией указанного delimiter. |
static String |
join |
Возвращает новый String, составленный из копий CharSequence elements, соединенных копией указанного delimiter. |
int |
lastIndexOf |
Возвращает индекс последнего вхождения указанного символа в этой строке. |
int |
lastIndexOf |
Возвращает индекс последнего вхождения указанного символа в этой строке, выполняя поиск в обратном направлении от указанного индекса. |
int |
lastIndexOf |
Возвращает индекс последнего вхождения указанной подстроки в этой строке. |
int |
lastIndexOf |
Возвращает индекс последнего вхождения указанной подстроки в этой строке, выполняя поиск в обратном направлении от указанного индекса. |
int |
length() |
Возвращает длину этой строки. |
Stream |
lines() |
Возвращает поток строк, извлеченных из этой строки и разделенных символами окончания строк. |
boolean |
matches |
Определяет, соответствует ли эта строка заданному регулярному выражению. |
int |
offsetByCodePoints |
Возвращает индекс в этой последовательности String, смещенный относительно заданного index на codePointOffset кодовых точек. |
boolean |
regionMatches |
Проверяет, равны ли два участка строк. |
boolean |
regionMatches |
Проверяет, равны ли два участка строк. |
String |
repeat |
Возвращает строку, значением которой является эта строка, повторенная count раз. |
String |
replace |
Возвращает строку, полученную заменой всех вхождений oldChar в этой строке на newChar. |
String |
replace |
Заменяет каждую подстроку этой строки, совпадающую с указанной буквальной целевой последовательностью, заданной буквальной последовательностью замены. |
String |
replaceAll |
Заменяет каждую подстроку этой строки, соответствующую заданному регулярному выражению, указанной строкой замены. |
String |
replaceFirst |
Заменяет первую подстроку этой строки, соответствующую заданному регулярному выражению, указанной строкой замены. |
String |
resolveConstantDesc |
Разрешает этот экземпляр как ConstantDesc; результатом является сам экземпляр. |
String[] |
split |
Разбивает эту строку по совпадениям с заданным регулярным выражением. |
String[] |
split |
Разбивает эту строку по совпадениям с заданным регулярным выражением. |
String[] |
splitWithDelimiters |
Разбивает эту строку по совпадениям с заданным регулярным выражением и возвращает как строки, так и совпавшие разделители. |
boolean |
startsWith |
Проверяет, начинается ли эта строка с указанного префикса. |
boolean |
startsWith |
Проверяет, начинается ли подстрока этой строки, начинаясь с указанного индекса, с указанного префикса. |
String |
strip() |
Возвращает строку, значением которой является эта строка без начальных и конечных пробельных символов. |
String |
stripIndent() |
Возвращает строку, значением которой является эта строка без случайных пробельных символов в начале и конце каждой строки. |
String |
stripLeading() |
Возвращает строку, значением которой является эта строка без начальных пробельных символов. |
String |
stripTrailing() |
Возвращает строку, значением которой является эта строка без конечных пробельных символов. |
CharSequence |
subSequence |
Возвращает символьную последовательность, являющуюся подпоследовательностью этой последовательности. |
String |
substring |
Возвращает строку, являющуюся подстрокой этой строки. |
String |
substring |
Возвращает строку, являющуюся подстрокой этой строки. |
char[] |
toCharArray() |
Преобразует эту строку в новый массив символов. |
String |
toLowerCase() |
Преобразует все символы этого String в нижний регистр согласно правилам локали по умолчанию. |
String |
toLowerCase |
Преобразует все символы этого String в нижний регистр согласно правилам заданной Locale. |
String |
toString() |
Этот объект (который уже является строкой!) |
String |
toUpperCase() |
Преобразует все символы этого String в верхний регистр согласно правилам локали по умолчанию. |
String |
toUpperCase |
Преобразует все символы этого String в верхний регистр согласно правилам заданной Locale. |
<R> R |
transform |
Этот метод позволяет применить функцию к строке this. |
String |
translateEscapes() |
Возвращает строку, значением которой является эта строка, с управляющими последовательностями, преобразованными так же, как в строковом литерале. |
String |
trim() |
Возвращает строку, значением которой является эта строка без начальных и конечных пробелов; пробелом считается любой символ, кодовая точка которого меньше или равна 'U+0020' (символ пробела). |
static String |
valueOf |
Возвращает строковое представление аргумента boolean. |
static String |
valueOf |
Возвращает строковое представление аргумента char. |
static String |
valueOf |
Возвращает строковое представление аргумента char — массива. |
static String |
valueOf |
Возвращает строковое представление указанного подмассива аргумента char — массива. |
static String |
valueOf |
Возвращает строковое представление аргумента double. |
static String |
valueOf |
Возвращает строковое представление аргумента float. |
static String |
valueOf |
Возвращает строковое представление аргумента int. |
static String |
valueOf |
Возвращает строковое представление аргумента long. |
static String |
valueOf |
Возвращает строковое представление аргумента Object. |
Методы, объявленные в классе Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
protected void |
finalize() |
Устарело, подлежит удалению: этот элемент API может быть удален в будущей версии. Финализация устарела и подлежит удалению в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания, либо до истечения определенного промежутка реального времени. |
final void |
wait |
Переводит текущий поток в состояние ожидания до его пробуждения, обычно в результате уведомления или прерывания, либо до истечения определенного промежутка реального времени. |
Подробное описание полей
CASE_INSENSITIVE_ORDER
public static final Comparator<String> CASE_INSENSITIVE_ORDER
String так же, как compareToIgnoreCase. Этот компаратор является сериализуемым. Обратите внимание, что этот компаратор не учитывает локаль, поэтому в некоторых локалях результат сортировки будет неудовлетворительным. Класс Collator обеспечивает сравнение с учетом локали.
- Начиная с версии:
- 1.2
- См. также:
UNICODE_CASEFOLD_ORDER
public static final Comparator<String> UNICODE_CASEFOLD_ORDER
String так же, как compareToFoldCase().- Начиная с версии:
- 26
- См. также:
Подробное описание конструкторов
String
public String()
String так, чтобы он представлял пустую последовательность символов. Обратите внимание, что этот конструктор не нужен, поскольку строки неизменяемы.String
public String(String original)
String так, чтобы он представлял ту же последовательность символов, что и аргумент; иными словами, вновь созданная строка является копией строки-аргумента. Если явная копия original не требуется, этот конструктор не нужен, поскольку строки неизменяемы.- Параметры:
-
original—String
String
public String(char[] value)
String, представляющей последовательность символов, содержащуюся в данный момент в массиве символов-аргументе. Содержимое массива символов копируется; последующее изменение массива символов не влияет на вновь созданную строку. Содержимое строки не определено, если массив символов изменяется во время создания строки.
- Параметры:
-
value— начальное значение строки
String
public String(char[] value, int offset, int count)
String, содержащей символы из подмассива массива символов-аргумента. Аргумент offset задает индекс первого символа подмассива, а аргумент count — длину подмассива. Содержимое подмассива копируется; последующее изменение массива символов не влияет на вновь созданную строку. Содержимое строки не определено, если массив символов изменяется во время создания строки.
- Параметры:
-
value— массив, содержащий исходные символы -
offset— начальное смещение -
count— длина - Исключения:
-
IndexOutOfBoundsException— еслиoffsetотрицателен,countотрицателен илиoffsetбольшеvalue.length - count
String
public String(int[] codePoints, int offset, int count)
String, содержащей символы из подмассива массива аргумента с кодовыми точками Unicode. Аргумент offset задает индекс первой кодовой точки подмассива, а аргумент count — длину подмассива. Содержимое подмассива преобразуется в char; последующее изменение массива int не влияет на вновь созданную строку. Содержимое строки не определено, если массив кодовых точек изменяется во время создания строки.
- Параметры:
-
codePoints— массив, содержащий исходные кодовые точки Unicode -
offset— начальное смещение -
count— длина - Исключения:
-
IllegalArgumentException— если вcodePointsобнаружена недопустимая кодовая точка Unicode -
IndexOutOfBoundsException— еслиoffsetотрицателен,countотрицателен илиoffsetбольшеcodePoints.length - count - Начиная с версии:
- 1.5
String
@Deprecated(since="1.1") public String(byte[] ascii, int hibyte, int offset, int count)
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
@Deprecated(since="1.1") public String(byte[] ascii, int hibyte)
String, принимающие Charset или имя кодировки либо использующие default charset.String, содержащей символы, созданные из массива 8-битных целочисленных значений. Каждый символ c в результирующей строке создается из соответствующего компонента b массива байтов следующим образом:
c == (char)(((hibyte & 0xff) << 8)
| (b & 0xff))
Содержимое строки не определено, если массив байтов изменяется во время создания строки.
- Параметры:
-
ascii— байты, которые необходимо преобразовать в символы -
hibyte— старшие 8 бит каждой 16-битной кодовой единицы Unicode - См. также:
String
public String(byte[] bytes, int offset, int length, String charsetName) throws UnsupportedEncodingException
String, декодируя указанный подмассив байтов с помощью заданной кодировки. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной подмассива. Поведение этого конструктора в случае, если заданные байты недопустимы в указанной кодировке, не определено. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.
Содержимое строки не определено, если массив байтов изменяется во время создания строки.
- Параметры:
-
bytes— байты, которые необходимо декодировать в символы -
offset— индекс первого декодируемого байта -
length— количество декодируемых байтов -
charsetName— имя поддерживаемой кодировки - Исключения:
-
UnsupportedEncodingException— если указанная кодировка не поддерживается -
IndexOutOfBoundsException— еслиoffsetотрицателен,lengthотрицателен илиoffsetбольшеbytes.length - length - Начиная с версии:
- 1.1
String
public String(byte[] bytes, int offset, int length, Charset charset)
String, декодируя указанный подмассив байтов с помощью заданной кодировки. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной подмассива. Этот метод всегда заменяет некорректные входные последовательности и последовательности символов, которые невозможно отобразить, строкой-заменой, заданной по умолчанию для этой кодировки. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.
Содержимое строки не определено, если массив байтов изменяется во время создания строки.
- Параметры:
-
bytes— байты, которые необходимо декодировать в символы -
offset— индекс первого декодируемого байта -
length— количество декодируемых байтов -
charset— кодировка, используемая для декодированияbytes - Исключения:
-
IndexOutOfBoundsException— еслиoffsetотрицателен,lengthотрицателен илиoffsetбольшеbytes.length - length - Начиная с версии:
- 1.6
String
public String(byte[] bytes, String charsetName) throws UnsupportedEncodingException
String, декодируя указанный массив байтов с помощью заданной кодировки. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной массива байтов. Поведение этого конструктора в случае, если заданные байты недопустимы в указанной кодировке, не определено. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.
Содержимое строки не определено, если массив байтов изменяется во время создания строки.
- Параметры:
-
bytes— байты, которые необходимо декодировать в символы -
charsetName— имя поддерживаемой кодировки - Исключения:
-
UnsupportedEncodingException— если указанная кодировка не поддерживается - Начиная с версии:
- 1.1
String
public String(byte[] bytes, Charset charset)
String, декодируя указанный массив байтов с помощью заданной кодировки. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной массива байтов. Этот метод всегда заменяет некорректные входные последовательности и последовательности символов, которые невозможно отобразить, строкой-заменой, заданной по умолчанию для этой кодировки. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.
Содержимое строки не определено, если массив байтов изменяется во время создания строки.
- Параметры:
-
bytes— байты, которые необходимо декодировать в символы -
charset— кодировка, используемая для декодированияbytes - Начиная с версии:
- 1.6
String
public String(byte[] bytes, int offset, int length)
String, декодируя указанный подмассив байтов с помощью default charset. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной подмассива. Поведение этого конструктора в случае, если заданные байты недопустимы в кодировке по умолчанию, не определено. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.
Содержимое строки не определено, если массив байтов изменяется во время создания строки.
- Параметры:
-
bytes— байты, которые необходимо декодировать в символы -
offset— индекс первого декодируемого байта -
length— количество декодируемых байтов - Исключения:
-
IndexOutOfBoundsException— еслиoffsetотрицателен,lengthотрицателен илиoffsetбольшеbytes.length - length - Начиная с версии:
- 1.1
String
public String(byte[] bytes)
String, декодируя указанный массив байтов с помощью default charset. Длина новой String зависит от кодировки и поэтому может не совпадать с длиной массива байтов. Поведение этого конструктора в случае, если заданные байты недопустимы в кодировке по умолчанию, не определено. Если требуется больший контроль над процессом декодирования, следует использовать класс CharsetDecoder.
Содержимое строки не определено, если массив байтов изменяется во время создания строки.
- Параметры:
-
bytes— байты, которые необходимо декодировать в символы - Начиная с версии:
- 1.1
String
public String(StringBuffer buffer)
- Параметры:
-
buffer—StringBuffer
String
public String(StringBuilder builder)
Содержимое строки не определено, если StringBuilder изменяется во время создания строки.
Этот конструктор предоставлен для упрощения перехода на
StringBuilder. Получение строки из объекта построения строк с помощью метода
toString, вероятно, будет быстрее и обычно предпочтительнее.
- Параметры:
-
builder—StringBuilder - Начиная с версии:
- 1.5
Подробное описание методов
length
public int length()
- Определено в:
-
lengthв интерфейсеCharSequence - Возвращает:
- длину последовательности символов, представленной этим объектом.
isEmpty
public boolean isEmpty()
- Определено в:
-
isEmptyв интерфейсеCharSequence - Примечание к API:
- Чтобы определить, содержит ли строка только пробельные символы, используйте
isBlank. - Возвращает:
-
true, еслиlength()равно0; в противном случае —false - Начиная с версии:
- 1.6
charAt
public char charAt(int index)
char по указанному индексу. Индексы находятся в диапазоне от 0 до length() - 1. Первое значение char последовательности находится по индексу 0, следующее — по индексу 1 и так далее, как при индексировании массива. Если значение char, заданное индексом, является суррогатом, возвращается значение суррогата.
- Определено в:
-
charAtв интерфейсеCharSequence - Параметры:
-
index— индекс значенияchar. - Возвращает:
- значение
charпо указанному индексу этой строки. Первое значениеcharнаходится по индексу0. - Исключения:
-
IndexOutOfBoundsException— если аргументindexотрицателен или не меньше длины этой строки.
codePointAt
public int codePointAt(int index)
char (кодовым единицам Unicode) и находится в диапазоне от 0 до length() - 1. Если значение char, заданное указанным индексом, находится в диапазоне старших суррогатов, следующий индекс меньше длины этой String, а значение char по следующему индексу находится в диапазоне младших суррогатов, возвращается дополнительная кодовая точка, соответствующая этой суррогатной паре. В противном случае возвращается значение char по заданному индексу.
- Параметры:
-
index— индекс значенияchar - Возвращает:
- значение кодовой точки символа по
index - Исключения:
-
IndexOutOfBoundsException— если аргументindexотрицателен или не меньше длины этой строки. - Начиная с версии:
- 1.5
codePointBefore
public int codePointBefore(int index)
char (кодовым единицам Unicode) и находится в диапазоне от 1 до length. Если значение char по индексу (index - 1) находится в диапазоне младших суррогатов, (index - 2) не является отрицательным, а значение char по индексу (index -
2) находится в диапазоне старших суррогатов, возвращается значение дополнительной кодовой точки этой суррогатной пары. Если значение char по индексу index -
1 является непарным младшим или старшим суррогатом, возвращается значение суррогата.
- Параметры:
-
index— индекс, следующий за кодовой точкой, которую необходимо вернуть - Возвращает:
- значение кодовой точки Unicode перед заданным индексом.
- Исключения:
-
IndexOutOfBoundsException— если аргументindexменьше 1 или больше длины этой строки. - Начиная с версии:
- 1.5
codePointCount
public int codePointCount(int beginIndex, int endIndex)
String. Текстовый диапазон начинается с указанного beginIndex и заканчивается char по индексу endIndex - 1. Таким образом, длина текстового диапазона (в char) равна endIndex-beginIndex. Каждая непарная суррогатная кодовая единица в текстовом диапазоне считается одной кодовой точкой.- Параметры:
-
beginIndex— индекс первогоcharтекстового диапазона. -
endIndex— индекс после последнегоcharтекстового диапазона. - Возвращает:
- количество кодовых точек Unicode в указанном текстовом диапазоне
- Исключения:
-
IndexOutOfBoundsException— еслиbeginIndexотрицателен,endIndexбольше длины этойStringилиbeginIndexбольшеendIndex. - Начиная с версии:
- 1.5
offsetByCodePoints
public int offsetByCodePoints(int index, int codePointOffset)
String, смещенный от заданного index на codePointOffset кодовых точек. Каждая непарная суррогатная кодовая единица в текстовом диапазоне, заданном index и codePointOffset, считается одной кодовой точкой.- Параметры:
-
index— индекс, который необходимо сместить -
codePointOffset— смещение в кодовых точках - Возвращает:
- индекс в этой
String - Исключения:
-
IndexOutOfBoundsException— еслиindexотрицателен или больше длины этойString, либо еслиcodePointOffsetположителен и подстрока, начинающаяся сindex, содержит меньшеcodePointOffsetкодовых точек, либо еслиcodePointOffsetотрицателен и подстрока передindexсодержит меньше кодовых точек, чем абсолютное значениеcodePointOffset. - Начиная с версии:
- 1.5
getChars
public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
srcBegin; последний копируемый символ — по индексу srcEnd-1. Общее количество копируемых символов равно srcEnd-srcBegin. Символы копируются в подмассив dst, начинающийся с индекса dstBegin и заканчивающийся индексом: dstbegin + (srcEnd-srcBegin) - 1
- Определено в:
-
getCharsв интерфейсеCharSequence - Параметры:
-
srcBegin— начать копирование с этого смещения. -
srcEnd— остановить копирование на этом смещении. -
dst— массив, в который копируются данные. -
dstBegin— смещение вdst. - Исключения:
-
IndexOutOfBoundsException— если выполняется любое из следующих условий:-
srcBeginотрицателен -
dstBeginотрицателен - аргумент
srcBeginбольше аргументаsrcEnd. -
srcEndбольшеthis.length(). -
dstBegin+srcEnd-srcBeginбольшеdst.length
-
getBytes
@Deprecated(since="1.1") public void getBytes(int srcBegin, int srcEnd, byte[] dst, int dstBegin)
getBytes(), который использует default charset. Первый копируемый символ находится по индексу srcBegin; последний копируемый символ — по индексу srcEnd-1. Общее количество копируемых символов равно srcEnd-srcBegin. Символы, преобразованные в байты, копируются в подмассив
dst, начинающийся с индекса dstBegin и заканчивающийся индексом:
dstBegin + (srcEnd-srcBegin) - 1
- Параметры:
-
srcBegin— индекс первого копируемого символа строки -
srcEnd— индекс после последнего копируемого символа строки -
dst— массив назначения -
dstBegin— начальное смещение в массиве назначения - Исключения:
-
IndexOutOfBoundsException— если выполняется любое из следующих условий:-
srcBeginотрицателен -
srcBeginбольшеsrcEnd -
srcEndбольше длины этой строки -
dstBeginотрицателен -
dstBegin+(srcEnd-srcBegin)большеdst.length
-
getBytes
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
String в последовательность байтов, используя именованную кодировку, и сохраняет результат в новом массиве байтов. Поведение этого метода не определено, если эту строку нельзя закодировать в указанной кодировке. Если требуется больший контроль над процессом кодирования, следует использовать класс CharsetEncoder.
- Параметры:
-
charsetName— имя поддерживаемой кодировки - Возвращает:
- Полученный массив байтов
- Исключения:
-
UnsupportedEncodingException— если именованная кодировка не поддерживается - Начиная с версии:
- 1.1
getBytes
public byte[] getBytes(Charset charset)
String в последовательность байтов, используя указанную кодировку, и сохраняет результат в новом массиве байтов. Этот метод всегда заменяет последовательности некорректных входных данных и неотображаемых символов массивом байтов замены по умолчанию для этой кодировки. Если требуется больший контроль над процессом кодирования, следует использовать класс CharsetEncoder.
- Параметры:
-
charset— кодировка, используемая для кодированияString - Возвращает:
- Полученный массив байтов
- Начиная с версии:
- 1.6
getBytes
public byte[] getBytes()
String в последовательность байтов, используя default charset, и сохраняет результат в новом массиве байтов. Поведение этого метода не определено, если эту строку нельзя закодировать в кодировке по умолчанию. Если требуется больший контроль над процессом кодирования, следует использовать класс CharsetEncoder.
- Возвращает:
- Полученный массив байтов
- Начиная с версии:
- 1.1
encodedLength
public int encodedLength(Charset cs)
String, закодированной с помощью указанной Charset. Возвращаемая длина учитывает замену последовательностей некорректных входных данных и неотображаемых символов массивом байтов замены по умолчанию для кодировки. Результат будет таким же, как значение, возвращаемое методом getBytes(cs).length.
- Примечание к API:
- Этот метод обеспечивает производительность, эквивалентную или превосходящую производительность метода
getBytes(cs).length. - Параметры:
-
cs—Charset, используемая для вычисления длины - Возвращает:
- длину в байтах этой
String, закодированной с помощью указаннойCharset - Начиная с версии:
- 27
equals
public boolean equals(Object anObject)
true тогда и только тогда, когда аргумент не равен null и является объектом типа
String, представляющим ту же последовательность символов, что и этот объект. Для более точного сравнения строк см. Collator.
contentEquals
public boolean contentEquals(StringBuffer sb)
StringBuffer. Результат равен true тогда и только тогда, когда эта String представляет ту же последовательность символов, что и указанный StringBuffer. Этот метод выполняет синхронизацию по StringBuffer. Для более точного сравнения строк см. Collator.
- Параметры:
-
sb—StringBuffer, с которым сравнивается этаString - Возвращает:
-
true, если этаStringпредставляет ту же последовательность символов, что и указанныйStringBuffer; в противном случае —false - Начиная с версии:
- 1.4
contentEquals
public boolean contentEquals(CharSequence cs)
CharSequence. Результат равен true тогда и только тогда, когда эта String представляет ту же последовательность значений типа char, что и указанная последовательность. Обратите внимание: если CharSequence является объектом типа StringBuffer, то метод выполняет синхронизацию по нему. Для более точного сравнения строк см. Collator.
- Параметры:
-
cs— последовательность, с которой сравнивается этаString - Возвращает:
-
true, если этаStringпредставляет ту же последовательность значений типа char, что и указанная последовательность; в противном случае —false - Начиная с версии:
- 1.5
equalsIgnoreCase
public boolean equalsIgnoreCase(String anotherString)
String с другой String без учета регистра. Две строки считаются равными без учета регистра, если они имеют одинаковую длину, а соответствующие кодовые точки Unicode в обеих строках равны без учета регистра. Две кодовые точки Unicode считаются одинаковыми без учета регистра, если верно хотя бы одно из следующих условий:
- Две кодовые точки Unicode одинаковы (при сравнении с помощью оператора
==) - Вызов
Character.toLowerCase(Character.toUpperCase(int))для каждой кодовой точки Unicode дает одинаковый результат
Обратите внимание: этот метод не учитывает локаль и может давать неудовлетворительные результаты для некоторых локалей. Класс Collator обеспечивает сравнение с учетом локали.
- Параметры:
-
anotherString—String, с которой сравнивается этаString - Возвращает:
-
true, если аргумент не равенnullи представляет эквивалентнуюStringбез учета регистра; в противном случае —false - См. также:
equalsFoldCase
public boolean equalsFoldCase(String anotherString)
String с другой String на равенство, используя приведение регистра Unicode. Согласно этому методу, две строки считаются равными, если их формы после приведения регистра идентичны. Приведение регистра определено в стандарте Unicode в документе CaseFolding.txt и включает соответствия 1:M. Например, "FuÃ".equalsFoldCase("FUSS") возвращает true, поскольку символ U+00DF (эсцет) при приведении регистра преобразуется в "ss".
Приведение регистра не зависит от локали и языка, в отличие от преобразований с учетом локали, таких как toLowerCase() или toUpperCase(). Оно предназначено для сопоставления без учета регистра, поиска и индексирования.
- Примечание к API:
- Этот метод является совместимой со стандартом Unicode альтернативой методу
equalsIgnoreCase(String). Он реализует полное приведение регистра, определенное стандартом Unicode, которое может отличаться от более простого посимвольного преобразования, выполняемого методомequalsIgnoreCase. Например:String a = "FuÃ"; String b = "FUSS"; boolean equalsFoldCase = a.equalsFoldCase(b); // returns true boolean equalsIgnoreCase = a.equalsIgnoreCase(b); // returns false - Параметры:
-
anotherString—String, с которой сравнивается этаString - Возвращает:
-
true, если указанный объект не равенnullи представляет ту же последовательность символов, что и эта строка, при приведении регистра Unicode; в противном случае —false. - Начиная с версии:
- 26
- Внешние спецификации
- См. также:
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(int)) для каждой кодовой точки Unicode. Обратите внимание: этот метод не учитывает локаль и может задавать неудовлетворительный порядок для некоторых локалей. Класс Collator обеспечивает сравнение с учетом локали.
- Параметры:
-
str—Stringдля сравнения. - Возвращает:
- отрицательное целое число, ноль или положительное целое число, если указанная строка больше, равна или меньше этой строки соответственно, без учета регистра.
- Начиная с версии:
- 1.2
- См. также:
compareToFoldCase
public int compareToFoldCase(String str)
compareTo для строк после приведения регистра Unicode. Приведение регистра Unicode устраняет различия регистра в соответствии со стандартом Unicode, используя соответствия, определенные в документе CaseFolding.txt, включая соответствия 1:M, такие как "Ã" â "ss"}. Приведение регистра — это не зависящая от локали и языка форма преобразования регистра, предназначенная главным образом для сопоставления без учета регистра. В отличие от метода compareToIgnoreCase(String), который применяет более простое преобразование в верхний регистр без учета локали, этот метод выполняет полное приведение регистра Unicode, обеспечивая стабильные и согласованные результаты в любых средах.
Обратите внимание: этот метод не учитывает локаль и может давать результаты, отличающиеся от порядка, определяемого с учетом локали. Для сравнения с учетом локали используйте Collator.
- Примечание к API:
- Этот метод является совместимой со стандартом Unicode альтернативой методу
compareToIgnoreCase(String). Он реализует полное приведение регистра, определенное стандартом Unicode, которое может отличаться от более простого посимвольного преобразования, выполняемого методомcompareToIgnoreCase. Например:String a = "FuÃ"; String b = "FUSS"; int cmpFoldCase = a.compareToFoldCase(b); // returns 0 int cmpIgnoreCase = a.compareToIgnoreCase(b); // returns > 0 - Параметры:
-
str—Stringдля сравнения. - Возвращает:
- отрицательное целое число, ноль или положительное целое число, если указанная строка больше, равна или меньше этой строки соответственно, без учета регистра посредством его приведения.
- Начиная с версии:
- 26
- Внешние спецификации
- См. также:
regionMatches
public boolean regionMatches(int toffset, String other, int ooffset, int len)
Подстрока этого объекта String сравнивается с подстрокой аргумента other. Результат равен true, если эти подстроки представляют идентичные последовательности символов. Сравниваемая подстрока этого объекта String начинается с индекса toffset и имеет длину len. Сравниваемая подстрока other начинается с индекса ooffset и имеет длину len. Результат равен false тогда и только тогда, когда верно хотя бы одно из следующих условий:
-
toffsetотрицательно. -
ooffsetотрицательно. -
toffset+lenбольше длины этого объектаString. -
ooffset+lenбольше длины другого аргумента. - Существует неотрицательное целое число k, меньшее
len, такое что:this.charAt(toffset +k) != other.charAt(ooffset +k)
Обратите внимание: этот метод не учитывает локаль. Класс Collator обеспечивает сравнение с учетом локали.
- Параметры:
-
toffset— начальное смещение подрегиона в этой строке. -
other— строка-аргумент. -
ooffset— начальное смещение подрегиона в строке-аргументе. -
len— количество сравниваемых символов. - Возвращает:
-
true, если указанный подрегион этой строки точно совпадает с указанным подрегионом строки-аргумента; в противном случае —false.
regionMatches
public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
Подстрока этого объекта String сравнивается с подстрокой аргумента other. Результат равен true, если эти подстроки представляют одинаковые последовательности кодовых точек Unicode, причем без учета регистра тогда и только тогда, когда ignoreCase равно true. Сравниваются последовательности tsequence и osequence, где tsequence — последовательность, полученная так, как если бы был вызван this.substring(toffset, toffset + len).codePoints(), а osequence — последовательность, полученная так, как если бы был вызван other.substring(ooffset, ooffset + len).codePoints(). Результат равен true тогда и только тогда, когда выполняются все следующие условия:
-
toffsetнеотрицательно. -
ooffsetнеотрицательно. -
toffset+lenменьше или равно длине этого объектаString. -
ooffset+lenменьше или равно длине другого аргумента. - если
ignoreCaseравноfalse, все пары соответствующих кодовых точек Unicode имеют одинаковые целочисленные значения; или еслиignoreCaseравноtrue, применениеCharacter.toLowerCase(иCharacter.toUpperCase(int))ко всем парам кодовых точек Unicode приводит к одинаковым целочисленным значениям.
Обратите внимание: этот метод не учитывает локаль и может давать неудовлетворительные результаты для некоторых локалей, если ignoreCase равно true. Класс Collator обеспечивает сравнение с учетом локали.
- Параметры:
-
ignoreCase— если равноtrue, при сравнении символов не учитывать регистр. -
toffset— начальное смещение подрегиона в этой строке. -
other— строка-аргумент. -
ooffset— начальное смещение подрегиона в строке-аргументе. -
len— количество сравниваемых символов (16-разрядных кодовых единиц Unicode, значений типаchar). - Возвращает:
-
true, если указанный подрегион этой строки совпадает с указанным подрегионом строки-аргумента; в противном случае —false. Точное совпадение или совпадение без учета регистра определяется аргументомignoreCase. - См. также:
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 — длина строки, а ^ обозначает возведение в степень. (Хеш-значение пустой строки равно нулю.)indexOf
public int indexOf(int ch)
ch встречается в последовательности символов, представленной этим объектом String, возвращается индекс (в кодовых единицах Unicode) первого такого вхождения. Для значений ch в диапазоне от 0 до 0xFFFF включительно это наименьшее значение k, для которого: истинно. Для остальных значенийthis.charAt(k) == ch
ch это наименьшее значение k, для которого: истинно. В обоих случаях, если такой символ в этой строке не встречается, возвращаетсяthis.codePointAt(k) == ch
-1.- Параметры:
-
ch— символ (кодовая точка Unicode). - Возвращает:
- индекс первого вхождения символа в последовательности символов, представленной этим объектом, или
-1, если символ не встречается.
indexOf
public int indexOf(int ch, int fromIndex)
Если символ со значением ch встречается в последовательности символов, представленной этим объектом String, по индексу не меньше fromIndex, возвращается индекс первого такого вхождения. Для значений ch в диапазоне от 0 до 0xFFFF включительно это наименьшее значение k, для которого:
истинно. Для остальных значений(this.charAt(k) == ch)&&(k >= fromIndex)
ch это наименьшее значение k, для которого: истинно. В обоих случаях, если такой символ не встречается в этой строке в позиции(this.codePointAt(k) == ch)&&(k >= fromIndex)
fromIndex или далее, возвращается -1. Значение fromIndex не ограничено. Если оно отрицательно, результат такой же, как если бы оно равнялось нулю: поиск может выполняться по всей строке. Если оно больше длины строки, результат такой же, как если бы оно равнялось длине строки: возвращается -1.
Все индексы задаются в значениях char (кодовых единицах Unicode).
- Примечание к API:
- В отличие, например, от метода
substring(int), этот метод не выбрасывает исключение, еслиfromIndexнаходится за пределами допустимого диапазона. Вместо этого он возвращает -1, еслиfromIndexбольше длины строки. Сам по себе этот результат неотличим от случая, когдаchдействительно отсутствует в строке. Если требуется более строгое поведение, следует рассмотреть методindexOf(int, int, int). Например, уStringsвызовs.indexOf(ch, fromIndex, s.length())привел бы к исключению, если быfromIndexбыло больше длины строки или отрицательным. - Параметры:
-
ch— символ (кодовая точка Unicode). -
fromIndex— индекс, с которого следует начать поиск. - Возвращает:
- индекс первого вхождения символа в последовательности символов, представленной этим объектом, который больше или равен
fromIndex, или-1, если символ не встречается.
indexOf
public int indexOf(int ch, int beginIndex, int endIndex)
beginIndex и останавливаясь перед endIndex. Если символ со значением ch встречается в последовательности символов, представленной этим объектом String, по индексу не меньше beginIndex, но меньше endIndex, возвращается индекс первого такого вхождения. Для значений ch в диапазоне от 0 до 0xFFFF (включительно) это наименьшее значение k, для которого:
истинно. Для других значений(this.charAt(k) == ch) && (beginIndex <= k < endIndex)
ch это наименьшее значение k, для которого: истинно. В обоих случаях, если такой символ не встречается в этой строке начиная с позиции(this.codePointAt(k) == ch) && (beginIndex <= k < endIndex)
beginIndex и до позиции endIndex, возвращается -1. Все индексы задаются в значениях char (кодовых единицах Unicode).
- Параметры:
-
ch— символ (кодовая точка Unicode). -
beginIndex— индекс, с которого начинается поиск (включительно). -
endIndex— индекс, на котором заканчивается поиск (не включительно). - Возвращает:
- индекс первого вхождения символа в последовательности символов, представленной этим объектом, который больше или равен
beginIndexи меньшеendIndex, или-1, если символ не встречается. - Выбрасывает:
-
StringIndexOutOfBoundsException— еслиbeginIndexотрицательно, илиendIndexбольше длины этого объектаString, илиbeginIndexбольшеendIndex. - Начиная с:
- 21
lastIndexOf
public int lastIndexOf(int ch)
ch в диапазоне от 0 до 0xFFFF (включительно) возвращаемый индекс (в кодовых единицах Unicode) является наибольшим значением k, для которого: истинно. Для других значенийthis.charAt(k) == ch
ch это наибольшее значение k, для которого: истинно. В обоих случаях, если такой символ не встречается в этой строке, возвращаетсяthis.codePointAt(k) == ch
-1. Поиск в String выполняется в обратном направлении, начиная с последнего символа.- Параметры:
-
ch— символ (кодовая точка Unicode). - Возвращает:
- индекс последнего вхождения символа в последовательности символов, представленной этим объектом, или
-1, если символ не встречается.
lastIndexOf
public int lastIndexOf(int ch, int fromIndex)
ch в диапазоне от 0 до 0xFFFF (включительно) возвращаемый индекс является наибольшим значением k, для которого: истинно. Для других значений(this.charAt(k) == ch)&&(k <= fromIndex)
ch это наибольшее значение k, для которого: истинно. В обоих случаях, если такой символ не встречается в этой строке на позиции(this.codePointAt(k) == ch)&&(k <= fromIndex)
fromIndex или перед ней, возвращается -1. Все индексы задаются в значениях char (кодовых единицах Unicode).
- Параметры:
-
ch— символ (кодовая точка Unicode). -
fromIndex— индекс, с которого начинается поиск. ЗначениеfromIndexне ограничено. Если оно больше или равно длине этой строки, результат будет таким же, как если бы оно было равно длине строки минус один: поиск может выполняться по всей строке. Если оно отрицательно, результат будет таким же, как если бы оно было равно -1: возвращается -1. - Возвращает:
- индекс последнего вхождения символа в последовательности символов, представленной этим объектом, который меньше или равен
fromIndex, или-1, если символ не встречается до этой позиции.
indexOf
public int indexOf(String str)
Возвращаемый индекс является наименьшим значением k, для которого:
this.startsWith(str, k)
Если такого значения k не существует, возвращается -1.- Параметры:
-
str— подстрока для поиска. - Возвращает:
- индекс первого вхождения указанной подстроки или
-1, если такого вхождения нет.
indexOf
public int indexOf(String str, int fromIndex)
Возвращаемый индекс является наименьшим значением k, для которого:
k >= Math.min(fromIndex, this.length()) &&
this.startsWith(str, k)
Если такого значения k не существует, возвращается -1.- Примечание API:
- В отличие, например, от
substring(int), этот метод не выбрасывает исключение, еслиfromIndexнаходится вне допустимого диапазона. Вместо этого он возвращает -1, еслиfromIndexбольше длины строки. Сам по себе этот результат неотличим от отсутствия в строкеstr. Если требуется более строгое поведение, следует рассмотреть методindexOf(String, int, int). Например, дляStringsи непустого значенияstrвызовs.indexOf(str, fromIndex, s.length())выбросит исключение, еслиfromIndexбольше длины строки или отрицательно. - Параметры:
-
str— подстрока для поиска. -
fromIndex— индекс, с которого начинается поиск. - Возвращает:
- индекс первого вхождения указанной подстроки, начиная с указанного индекса, или
-1, если такого вхождения нет.
indexOf
public int indexOf(String str, int beginIndex, int endIndex)
this. Этот метод возвращает тот же результат, что и вызов
s.substring(beginIndex, endIndex).indexOf(str) + beginIndex
, если индекс, возвращаемый методом indexOf(String), неотрицателен, и возвращает -1 в противном случае. (При этом подстрока не создаётся.)- Параметры:
-
str— подстрока для поиска. -
beginIndex— индекс, с которого начинается поиск (включительно). -
endIndex— индекс, на котором заканчивается поиск (не включительно). - Возвращает:
- индекс первого вхождения указанной подстроки в заданном диапазоне индексов или
-1, если такого вхождения нет. - Выбрасывает:
-
StringIndexOutOfBoundsException— еслиbeginIndexотрицательно, илиendIndexбольше длины этого объектаString, илиbeginIndexбольшеendIndex. - Начиная с:
- 21
lastIndexOf
public int lastIndexOf(String str)
this.length(). Возвращаемый индекс является наибольшим значением k, для которого:
this.startsWith(str, k)
Если такого значения k не существует, возвращается -1.- Параметры:
-
str— подстрока для поиска. - Возвращает:
- индекс последнего вхождения указанной подстроки или
-1, если такого вхождения нет.
lastIndexOf
public int lastIndexOf(String str, int fromIndex)
Возвращаемый индекс является наибольшим значением k, для которого:
k <= Math.min(fromIndex, this.length()) &&
this.startsWith(str, k)
Если такого значения k не существует, возвращается -1.- Параметры:
-
str— подстрока для поиска. -
fromIndex— индекс, с которого начинается поиск. - Возвращает:
- индекс последнего вхождения указанной подстроки при поиске в обратном направлении от указанного индекса или
-1, если такого вхождения нет.
substring
public String substring(int beginIndex)
Примеры:
"unhappy".substring(2) returns "happy" "Harbison".substring(3) returns "bison" "emptiness".substring(9) returns "" (an empty string)
- Параметры:
-
beginIndex— начальный индекс, включительно. - Возвращает:
- указанную подстроку.
- Выбрасывает:
-
IndexOutOfBoundsException— еслиbeginIndexотрицательно или больше длины этого объектаString.
substring
public String substring(int beginIndex, int endIndex)
beginIndex и продолжается до символа с индексом endIndex - 1. Таким образом, длина подстроки равна endIndex-beginIndex. Примеры:
"hamburger".substring(4, 8) returns "urge" "smiles".substring(1, 5) returns "mile"
- Параметры:
-
beginIndex— начальный индекс, включительно. -
endIndex— конечный индекс, не включительно. - Возвращает:
- указанную подстроку.
- Выбрасывает:
-
IndexOutOfBoundsException— еслиbeginIndexотрицательно, илиendIndexбольше длины этого объектаString, илиbeginIndexбольшеendIndex.
subSequence
public CharSequence subSequence(int beginIndex, int endIndex)
Вызов этого метода в форме
выполняет в точности те же действия, что и вызовstr.subSequence(begin, end)
str.substring(begin, end)
- Определено в:
-
subSequenceв интерфейсеCharSequence - Примечание API:
- Этот метод определён для того, чтобы класс
Stringмог реализовать интерфейсCharSequence. - Параметры:
-
beginIndex— начальный индекс, включительно. -
endIndex— конечный индекс, не включительно. - Возвращает:
- указанную подпоследовательность.
- Выбрасывает:
-
IndexOutOfBoundsException— еслиbeginIndexилиendIndexотрицательно, еслиendIndexбольшеlength()или еслиbeginIndexбольшеendIndex - Начиная с:
- 1.4
concat
public String concat(String str)
Если длина строки-аргумента равна 0, возвращается этот объект String. В противном случае возвращается объект String, представляющий последовательность символов, являющуюся результатом объединения последовательности символов, представленной этим объектом String, и последовательности символов, представленной строкой-аргументом.
Примеры:
"cares".concat("s") returns "caress"
"to".concat("get").concat("her") returns "together"
- Параметры:
-
str—String, добавляемая в конец этогоString. - Возвращает:
- строку, представляющую объединение символов этого объекта и следующих за ними символов строки-аргумента.
replace
public String replace(char oldChar, char newChar)
oldChar в этой строке на newChar. Если символ oldChar не встречается в последовательности символов, представленной этим объектом String, возвращается ссылка на этот объект String. В противном случае возвращается объект String, представляющий последовательность символов, идентичную последовательности символов, представленной этим объектом String, за исключением того, что каждое вхождение oldChar заменено вхождением newChar.
Примеры:
"mesquite in your cellar".replace('e', 'o')
returns "mosquito in your collar"
"the war of baronets".replace('r', 'y')
returns "the way of bayonets"
"sparring with a purple porpoise".replace('p', 't')
returns "starring with a turtle tortoise"
"JonL".replace('q', 'x') returns "JonL" (no change)
- Параметры:
-
oldChar— старый символ. -
newChar— новый символ. - Возвращает:
- строку, полученную из этой строки заменой каждого вхождения
oldCharнаnewChar.
matches
public boolean matches(String regex)
Вызов этого метода в форме str.matches(regex) даёт точно такой же результат, как выражение
Pattern.matches(regex, str)
- Параметры:
-
regex— регулярное выражение, которому должна соответствовать эта строка - Возвращает:
-
trueтогда и только тогда, когда эта строка соответствует заданному регулярному выражению - Выбрасывает:
-
PatternSyntaxException— если синтаксис регулярного выражения некорректен - Начиная с:
- 1.4
- См. также:
contains
public boolean contains(CharSequence s)
- Параметры:
-
s— последовательность для поиска - Возвращает:
- true, если эта строка содержит
s, иначе false - Начиная с:
- 1.5
replaceFirst
public String replaceFirst(String regex, String replacement)
Вызов этого метода в форме str.replaceFirst(regex, repl) даёт точно такой же результат, как выражение
Pattern.compile(regex).matcher(str).replaceFirst(repl)
Обратите внимание, что обратные косые черты (\) и знаки доллара ($) в строке замены могут привести к результатам, отличающимся от тех, которые получились бы при трактовке строки как литеральной строки замены; см. Matcher.replaceFirst(String). При необходимости используйте Matcher.quoteReplacement(String), чтобы отключить специальное значение этих символов.
- Параметры:
-
regex— регулярное выражение, которому должна соответствовать эта строка -
replacement— строка, которой заменяется первое совпадение - Возвращает:
- Результирующий
String - Выбрасывает:
-
PatternSyntaxException— если синтаксис регулярного выражения некорректен - Начиная с:
- 1.4
- См. также:
replaceAll
public String replaceAll(String regex, String replacement)
Вызов этого метода в форме str.replaceAll(regex, repl) даёт точно такой же результат, как выражение
Pattern.compile(regex).matcher(str).replaceAll(repl)
Обратите внимание, что обратные косые черты (\) и знаки доллара ($) в строке замены могут привести к результатам, отличающимся от тех, которые получились бы при трактовке строки как литеральной строки замены; см. Matcher.replaceAll. При необходимости используйте Matcher.quoteReplacement(String), чтобы отключить специальное значение этих символов.
- Параметры:
-
regex— регулярное выражение, которому должна соответствовать эта строка -
replacement— строка, которой заменяется каждое совпадение - Возвращает:
- Результирующий
String - Выбрасывает:
-
PatternSyntaxException— если синтаксис регулярного выражения некорректен - Начиная с:
- 1.4
- См. также:
replace
public String replace(CharSequence target, CharSequence replacement)
- Параметры:
-
target— последовательность значений char для замены -
replacement— последовательность значений char для замены - Возвращает:
- результирующую строку
- Начиная с:
- 1.5
split
public String[] split(String regex, int limit)
Возвращаемый этим методом массив содержит каждую подстроку этой строки, за которой следует другая подстрока, соответствующая заданному выражению, либо конец строки. Подстроки в массиве расположены в том же порядке, в котором они встречаются в этой строке. Если выражение не совпадает ни с одной частью входных данных, результирующий массив содержит только один элемент — эту строку.
Если в начале этой строки обнаруживается совпадение ненулевой ширины, в начало результирующего массива включается пустая начальная подстрока. Однако совпадение нулевой ширины в начале не приводит к появлению такой пустой начальной подстроки.
Параметр limit управляет количеством применений шаблона и, следовательно, влияет на длину результирующего массива.
Если limit положителен, шаблон будет применён не более limit - 1 раз, длина массива не превысит limit, а последний элемент массива будет содержать все входные данные после последнего совпавшего разделителя.
Если limit равен нулю, шаблон будет применяться максимально возможное число раз, массив может иметь любую длину, а завершающие пустые строки будут отброшены.
Если limit отрицателен, шаблон будет применяться максимально возможное число раз, и массив может иметь любую длину.
Например, строка "boo:and:foo" при следующих значениях параметров даёт указанные результаты:
Регулярное выражение Ограничение Результат : 2 { "boo", "and:foo" }5 { "boo", "and", "foo" }-2 { "boo", "and", "foo" }o 5 { "b", "", ":and:f", "", "" }-2 { "b", "", ":and:f", "", "" }0 { "b", "", ":and:f" }
Вызов этого метода в форме str.split(regex, n) даёт тот же результат, что выражение
Pattern.compile(regex).split(str, n)
- Параметры:
-
regex— регулярное выражение-разделитель -
limit— порог результата, описанный выше - Возвращает:
- массив строк, полученный разбиением этой строки в местах совпадений с заданным регулярным выражением
- Выбрасывает:
-
PatternSyntaxException— если синтаксис регулярного выражения некорректен - Начиная с:
- 1.4
- См. также:
splitWithDelimiters
public String[] splitWithDelimiters(String regex, int limit)
Возвращаемый этим методом массив содержит каждую подстроку этой строки, за которой следует другая подстрока, соответствующая заданному выражению, либо конец строки. Сразу за каждой подстрокой следует подпоследовательность (разделитель), соответствующая заданному выражению, кроме последней подстроки, за которой ничего не следует. Подстроки и разделители в массиве расположены в том же порядке, в котором они встречаются во входных данных. Если выражение не совпадает ни с одной частью входных данных, результирующий массив содержит только один элемент — эту строку.
Если в начале этой строки обнаруживается совпадение ненулевой ширины, в начало результирующего массива включается пустая начальная подстрока. Однако совпадение нулевой ширины в начале не приводит к появлению такой пустой начальной подстроки или пустого разделителя.
Параметр limit управляет количеством применений шаблона и, следовательно, влияет на длину результирующего массива.
- Если limit положителен, шаблон будет применён не более limit - 1 раз, длина массива не превысит 2 × limit - 1, а последний элемент массива будет содержать все входные данные после последнего совпавшего разделителя.
- Если limit равен нулю, шаблон будет применяться максимально возможное число раз, массив может иметь любую длину, а завершающие пустые строки будут отброшены.
- Если limit отрицателен, шаблон будет применяться максимально возможное число раз, и массив может иметь любую длину.
Например, входные данные "boo:::and::foo" при следующих значениях параметров дают указанные результаты:
| Регулярное выражение | Ограничение | Результат |
|---|---|---|
| :+ | 2 | { "boo", ":::", "and::foo" } |
| 5 | { "boo", ":::", "and", "::", "foo" } |
|
| -1 | { "boo", ":::", "and", "::", "foo" } |
|
| o | 5 | { "b", "o", "", "o", ":::and::f", "o", "", "o", "" } |
| -1 | { "b", "o", "", "o", ":::and::f", "o", "", "o", "" } |
|
| 0 | { "b", "o", "", "o", ":::and::f", "o", "", "o" } |
- Примечание API:
- Вызов этого метода в форме str.
splitWithDelimiters(regex,n)даёт тот же результат, что выражениеPattern.compile(regex).splitWithDelimiters(str, n) - Параметры:
-
regex— регулярное выражение-разделитель -
limit— порог результата, описанный выше - Возвращает:
- массив строк, полученный разбиением этой строки в местах совпадений с заданным регулярным выражением; элементы массива чередуют подстроки и соответствующие разделители
- Начиная с:
- 21
split
public String[] split(String regex)
Этот метод работает так, как если бы вызывался двухаргументный метод split с заданным выражением и нулевым значением аргумента limit. Поэтому завершающие пустые строки не включаются в результирующий массив.
Например, строка "boo:and:foo" при использовании следующих выражений даёт указанные результаты:
Регулярное выражение Результат : { "boo", "and", "foo" }o { "b", "", ":and:f" }
- Параметры:
-
regex— регулярное выражение-разделитель - Возвращает:
- массив строк, полученный разбиением этой строки в местах совпадений с заданным регулярным выражением
- Выбрасывает:
-
PatternSyntaxException— если синтаксис регулярного выражения некорректен - Начиная с:
- 1.4
- См. также:
join
public static String join(CharSequence delimiter, CharSequence... elements)
CharSequence elements, объединённых с копией указанного delimiter. Например,Обратите внимание: если элемент равен null, добавляетсяString message = String.join("-", "Java", "is", "cool"); // message returned is: "Java-is-cool"
"null".- Параметры:
-
delimiter— разделитель, который отделяет каждый элемент -
elements— элементы для объединения. - Возвращает:
- новую
String, составленную изelements, разделённыхdelimiter - Вызывает исключение:
-
NullPointerException— еслиdelimiterилиelementsравноnull - Начиная с:
- 1.8
- См. также:
join
public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
String, составленную из копий CharSequence elements, объединённых с копией указанного delimiter. Например,Обратите внимание: если отдельный элемент равенList<String> strings = List.of("Java", "is", "cool"); String message = String.join(" ", strings); // message returned is: "Java is cool" Set<String> strings = new LinkedHashSet<>(List.of("Java", "is", "very", "cool")); String message = String.join("-", strings); // message returned is: "Java-is-very-cool"
null, добавляется "null".- Параметры:
-
delimiter— последовательность символов, используемая для разделения каждого изelementsв результирующемString -
elements—Iterable, элементыelementsкоторого будут объединены. - Возвращает:
- новую
String, составленную из аргументаelements - Вызывает исключение:
-
NullPointerException— еслиdelimiterилиelementsравноnull - Начиная с:
- 1.8
- См. также:
toLowerCase
public String toLowerCase(Locale locale)
String в нижний регистр, используя правила заданной Locale. Преобразование регистра основано на версии стандарта Unicode, указанной в классе Character. Поскольку преобразования регистра не всегда соответствуют отображению «один символ в один символ», длины результирующей String и этой String могут различаться. Примеры преобразования в нижний регистр приведены в следующей таблице:
| Код языка локали | Верхний регистр | Нижний регистр | Описание |
|---|---|---|---|
| tr (турецкий) | \u0130 | \u0069 | заглавная буква I с точкой сверху -> строчная буква i |
| tr (турецкий) | \u0049 | \u0131 | заглавная буква I -> строчная буква i без точки |
| (все) | French Fries | french fries | все символы в String переведены в нижний регистр |
| (все) | ΙΧΘΥΣ | ιχθυς | все символы в String переведены в нижний регистр |
- Параметры:
-
locale— использовать правила преобразования регистра для этой локали - Возвращает:
Stringв нижнем регистре.- Начиная с:
- 1.1
- См. также:
toLowerCase
public String toLowerCase()
String в нижний регистр, используя правила локали по умолчанию. Этот метод эквивалентен toLowerCase(Locale.getDefault()).- Примечание к API:
- Этот метод зависит от локали и может давать неожиданные результаты, если использовать его для строк, которые должны интерпретироваться независимо от локали. Например, это идентификаторы языков программирования, ключи протоколов и теги HTML. Так,
"TITLE".toLowerCase()в турецкой локали возвращает"t\u0131tle", где '\u0131' — символ LATIN SMALL LETTER DOTLESS I. Чтобы получить корректные результаты для строк, не зависящих от локали, используйтеtoLowerCase(Locale.ROOT). - Возвращает:
Stringв нижнем регистре.- См. также:
toUpperCase
public String toUpperCase(Locale locale)
String в верхний регистр, используя правила заданной Locale. Преобразование регистра основано на версии стандарта Unicode, указанной в классе Character. Поскольку преобразования регистра не всегда соответствуют отображению «один символ в один символ», длины результирующей String и этой String могут различаться. Примеры преобразований регистра, зависящих от локали, и преобразований «один во многие» приведены в следующей таблице:
| Код языка локали | Нижний регистр | Верхний регистр | Описание |
|---|---|---|---|
| tr (турецкий) | \u0069 | \u0130 | строчная буква i -> заглавная буква I с точкой сверху |
| tr (турецкий) | \u0131 | \u0049 | строчная буква i без точки -> заглавная буква I |
| (все) | \u00df | \u0053 \u0053 | строчная буква эсцет -> две буквы: SS |
| (все) | Fahrvergnügen | FAHRVERGNÜGEN |
- Параметры:
-
locale— использовать правила преобразования регистра для этой локали - Возвращает:
Stringв верхнем регистре.- Начиная с:
- 1.1
- См. также:
toUpperCase
public String toUpperCase()
String в верхний регистр, используя правила локали по умолчанию. Этот метод эквивалентен toUpperCase(Locale.getDefault()).- Примечание к API:
- Этот метод зависит от локали и может давать неожиданные результаты, если использовать его для строк, которые должны интерпретироваться независимо от локали. Например, это идентификаторы языков программирования, ключи протоколов и теги HTML. Так,
"title".toUpperCase()в турецкой локали возвращает"T\u0130TLE", где '\u0130' — символ LATIN CAPITAL LETTER I WITH DOT ABOVE. Чтобы получить корректные результаты для строк, не зависящих от локали, используйтеtoUpperCase(Locale.ROOT). - Возвращает:
Stringв верхнем регистре.- См. также:
trim
public String trim()
'U+0020' (символ пробела). Если этот объект String представляет пустую последовательность символов или если коды первого и последнего символов последовательности, представленной этим объектом String, не являются кодами пробелов (как определено выше), возвращается ссылка на этот объект String.
В противном случае, если все символы этой строки являются пробелами (как определено выше), возвращается объект String, представляющий пустую строку.
В противном случае пусть k — индекс первого символа строки, код которого не является кодом пробела (как определено выше), а m — индекс последнего символа строки, код которого не является кодом пробела (как определено выше). Возвращается объект String, представляющий подстроку этой строки, которая начинается с символа по индексу k и заканчивается символом по индексу m, то есть результат this.substring(k, m + 1).
- Примечание к API:
- Этот метод удаляет из строки начальные и конечные пробелы и управляющие символы ASCII. Для удаления символов согласно определению пробельных символов на основе Unicode используйте
strip,stripIndent,stripLeadingилиstripTrailing. - Возвращает:
- строку со значением этой строки, из которой удалены все начальные и конечные пробелы, либо эту строку, если в ней нет начальных или конечных пробелов.
strip
public String strip()
Если этот объект String представляет пустую строку или все кодовые точки этой строки являются пробельными символами, возвращается пустая строка.
В противном случае возвращается подстрока этой строки, начинающаяся с первой кодовой точки, которая не является пробельным символом, и заканчивающаяся последней кодовой точкой, которая не является пробельным символом.
Этот метод можно использовать для удаления пробельных символов в начале и конце строки.
- Возвращает:
- строку со значением этой строки, из которой удалены все начальные и конечные пробельные символы
- Начиная с:
- 11
- См. также:
stripLeading
public String stripLeading()
Если этот объект String представляет пустую строку или все кодовые точки этой строки являются пробельными символами, возвращается пустая строка.
В противном случае возвращается подстрока этой строки, начинающаяся с первой кодовой точки, которая не является пробельным символом, и заканчивающаяся последней кодовой точкой этой строки.
Этот метод можно использовать для удаления пробельных символов в начале строки.
- Возвращает:
- строку со значением этой строки, из которой удалены все начальные пробельные символы
- Начиная с:
- 11
- См. также:
stripTrailing
public String stripTrailing()
Если этот объект String представляет пустую строку или все символы этой строки являются пробельными символами, возвращается пустая строка.
В противном случае возвращается подстрока этой строки, начинающаяся с первой кодовой точки этой строки и заканчивающаяся последней кодовой точкой, которая не является пробельным символом.
Этот метод можно использовать для удаления пробельных символов в конце строки.
- Возвращает:
- строку со значением этой строки, из которой удалены все конечные пробельные символы
- Начиная с:
- 11
- См. также:
isBlank
public boolean isBlank()
true, если строка пуста или содержит только кодовые точки пробельных символов; в противном случае возвращает false.- Возвращает:
-
true, если строка пуста или содержит только кодовые точки пробельных символов; в противном случае —false - Начиная с:
- 11
- См. также:
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
- См. также:
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
- См. также:
translateEscapes
public String translateEscapes()
Escape-последовательности преобразуются следующим образом:
| Escape-последовательность | Название | Преобразование |
|---|---|---|
\b | возврат на одну позицию | U+0008 |
\t | горизонтальная табуляция | U+0009 |
\n | перевод строки | U+000A |
\f | перевод страницы | U+000C |
\r | возврат каретки | U+000D |
\s | пробел | U+0020 |
\" | двойная кавычка | U+0022 |
\' | одинарная кавычка | U+0027 |
\\ | обратная косая черта | U+005C |
\0 - \377 | восьмеричная escape-последовательность | эквивалентные кодовые точки |
\<line-terminator> | продолжение | отбрасывается |
- Примечание по реализации:
- Этот метод не преобразует escape-последовательности Unicode, например "
\u2022". Escape-последовательности Unicode преобразуются компилятором Java при чтении входных символов и не являются частью спецификации строковых литералов. - Возвращает:
- Строку с преобразованными escape-последовательностями.
- Вызывает исключение:
-
IllegalArgumentException— если escape-последовательность имеет неверный формат. - См. Спецификацию языка Java:
- 3.10.7 Escape-последовательности
- Начиная с:
- 15
transform
public <R> R transform(Function<? super String, ? extends R> f)
this. Функция должна принимать один аргумент типа String и возвращать результат типа R. Любое исключение, выброшенное f.apply(), будет передано вызывающему коду.
- Параметры типа:
R— тип результата- Параметры:
-
f— функция для применения - Возвращает:
- результат применения функции к этой строке
- Начиная с:
- 12
- См. также:
toString
public String toString()
- Определён в:
-
toStringв интерфейсеCharSequence - Переопределяет:
-
toStringв классеObject - Возвращает:
- саму строку.
chars
public IntStream chars()
int, расширяющий нулями значения char из этой последовательности. Любой символ char, соответствующий суррогатной кодовой точке, передаётся без интерпретации.- Определён в:
-
charsв интерфейсеCharSequence - Возвращает:
- IntStream значений char из этой последовательности
- Начиная с:
- 9
codePoints
public IntStream codePoints()
int, которые затем передаются в поток.- Определён в:
-
codePointsв интерфейсеCharSequence - Возвращает:
- IntStream кодовых точек Unicode из этой последовательности
- Начиная с:
- 9
toCharArray
public char[] toCharArray()
- Возвращает:
- новый выделенный массив символов, длина которого равна длине этой строки и содержимое которого инициализировано последовательностью символов, представленной этой строкой.
format
public static String format(String format, Object... args)
Всегда используется локаль, возвращаемая методом Locale.getDefault(Locale.Category) с указанной категорией FORMAT.
- Параметры:
-
format— строка формата -
args— аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов может быть переменным, в том числе нулевым. Максимальное число аргументов ограничено максимальным размером массива Java, определённым в Спецификации виртуальной машины Java. Поведение при аргументеnullзависит от преобразования. - Возвращает:
- Отформатированную строку
- Вызывает исключение:
-
IllegalFormatException— если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с заданными аргументами, недостаточное количество аргументов для строки формата или другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Подробности спецификации класса formatter. - Начиная с:
- 1.5
- См. также:
format
public static String format(Locale l, String format, Object... args)
- Параметры:
-
l— локаль, применяемая при форматировании. Еслиlравноnull, локализация не применяется. -
format— строка формата -
args— Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Число аргументов переменно и может быть равно нулю. Максимальное число аргументов ограничено максимальной размерностью массива Java, определённой в Спецификации виртуальной машины Java. Поведение при аргументеnullзависит от преобразования. - Возвращает:
- Отформатированную строку
- Вызывает:
-
IllegalFormatException— Если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с заданными аргументами, недостаточное количество аргументов для строки формата или другие недопустимые условия. Описание всех возможных ошибок форматирования см. в разделе Подробности спецификации класса formatter - Начиная с:
- 1.5
- См. также:
formatted
public String formatted(Object... args)
- Требования к реализации:
- Этот метод эквивалентен
String.format(this, args). - Параметры:
-
args— Аргументы, на которые ссылаются спецификаторы формата в этой строке. - Возвращает:
- Отформатированную строку
- Начиная с:
- 15
- См. также:
valueOf
public static String valueOf(Object obj)
Object.- Параметры:
-
obj— объектObject. - Возвращает:
- если аргумент равен
null, возвращается строка, равная"null"; в противном случае возвращается значениеobj.toString(). - См. также:
valueOf
public static String valueOf(char[] data)
char. Содержимое массива символов копируется; последующее изменение массива символов не влияет на возвращаемую строку. Содержимое строки не определено, если массив символов изменяется во время создания строки.
- Параметры:
-
data— массив символов. - Возвращает:
- объект
String, содержащий символы массива символов.
valueOf
public static String valueOf(char[] data, int offset, int count)
char. Аргумент offset задаёт индекс первого символа подмассива. Аргумент count задаёт длину подмассива. Содержимое подмассива копируется; последующее изменение массива символов не влияет на возвращаемую строку.
Содержимое строки не определено, если массив символов изменяется во время создания строки.
- Параметры:
-
data— массив символов. -
offset— начальное смещение подмассива. -
count— длина подмассива. - Возвращает:
- объект
String, содержащий символы указанного подмассива массива символов. - Вызывает:
-
IndexOutOfBoundsException— еслиoffsetотрицателен, илиcountотрицателен, илиoffset+countбольше, чемdata.length.
copyValueOf
public static String copyValueOf(char[] data, int offset, int count)
valueOf(char[], int, int).- Параметры:
-
data— массив символов. -
offset— начальное смещение подмассива. -
count— длина подмассива. - Возвращает:
- объект
String, содержащий символы указанного подмассива массива символов. - Вызывает:
-
IndexOutOfBoundsException— еслиoffsetотрицателен, илиcountотрицателен, илиoffset+countбольше, чемdata.length.
copyValueOf
public static String copyValueOf(char[] data)
valueOf(char[]).- Параметры:
-
data— массив символов. - Возвращает:
- объект
String, содержащий символы массива символов.
valueOf
public static String valueOf(boolean b)
boolean.- Параметры:
-
b— значениеboolean. - Возвращает:
- если аргумент равен
true, возвращается строка, равная"true"; в противном случае возвращается строка, равная"false".
valueOf
public static String valueOf(char c)
char.- Параметры:
-
c— значениеchar. - Возвращает:
- строку длиной
1, единственным символом которой является аргументc.
valueOf
public static String valueOf(int i)
int. Представление в точности совпадает с результатом метода Integer.toString с одним аргументом.
- Параметры:
-
i— значениеint. - Возвращает:
- строковое представление аргумента
int. - См. также:
valueOf
public static String valueOf(long l)
long. Представление в точности совпадает с результатом метода Long.toString с одним аргументом.
- Параметры:
-
l— значениеlong. - Возвращает:
- строковое представление аргумента
long. - См. также:
valueOf
public static String valueOf(float f)
float. Представление в точности совпадает с результатом метода Float.toString с одним аргументом.
- Параметры:
-
f— значениеfloat. - Возвращает:
- строковое представление аргумента
float. - См. также:
valueOf
public static String valueOf(double d)
double. Представление в точности совпадает с результатом метода Double.toString с одним аргументом.
- Параметры:
-
d— значениеdouble. - Возвращает:
- строковое представление аргумента
double. - См. также:
intern
public String intern()
Класс String приватно поддерживает пул строк, изначально пустой.
При вызове метода intern, если пул уже содержит строку, равную этому объекту String согласно методу equals(Object), возвращается строка из пула. В противном случае этот объект String добавляется в пул, и возвращается ссылка на этот объект String.
Следовательно, для любых двух строк s и t, s.intern() == t.intern() равен true тогда и только тогда, когда s.equals(t) равен true.
Все строковые литералы и константные выражения со строковыми значениями интернируются. Строковые литералы определены в разделе §3.10.5 Спецификации языка Java.
- Возвращает:
- строку с тем же содержимым, что и у этой строки, гарантированно принадлежащую пулу уникальных строк.
repeat
public String repeat(int count)
count раз. Если эта строка пуста или значение count равно нулю, возвращается пустая строка.
- Параметры:
-
count— количество повторений - Возвращает:
- Строку, состоящую из этой строки, повторённой
countраз, или пустую строку, если эта строка пуста либо значение count равно нулю - Вызывает:
-
IllegalArgumentException— если значениеcountотрицательно. - Начиная с:
- 11
describeConstable
public Optional<String> describeConstable()
Optional, содержащий номинальный дескриптор этого экземпляра, которым является сам экземпляр.- Определён в:
-
describeConstableв интерфейсеConstable - Возвращает:
Optional, описывающий экземпляр String- Начиная с:
- 12
resolveConstantDesc
public String resolveConstantDesc(MethodHandles.Lookup lookup)
ConstantDesc; результатом является сам экземпляр.- Определён в:
-
resolveConstantDescв интерфейсеConstantDesc - Параметры:
-
lookup— игнорируется - Возвращает:
- экземпляр String
- Начиная с:
- 12
© 1993, 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.