Класс 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 для получения дополнительной информации). Значения индексов относятся к блокам кода, поэтому дополнительный символ занимает две позиции в String.
Класс String предоставляет методы для работы с кодовыми точками Unicode (т.е., символами), в дополнение к методам для работы с кодовыми блоками Unicode (т.е., значениями char).
Если не указано иное, методы сравнения строк не учитывают язык. Класс Collator предоставляет методы для более точного, чувствительного к языку сравнения строк.
- Примечание о реализации:
- Реализация оператора конкатенации строк остается на усмотрение компилятора Java, при условии, что компилятор в конечном итоге соответствует Спецификации языка Java. Например, компилятор
javacможет реализовать оператор сStringBuffer,StringBuilder, илиjava.lang.invoke.StringConcatFactoryв зависимости от версии JDK. Реализация преобразования строк обычно выполняется с помощью методаtoString, определенногоObjectи унаследованного всеми классами в Java. - См. Спецификацию языка Java:
- 15.18.1 Оператор конкатенации строк +
- С:
- 1.0
- См. также:
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final Comparator<String> |
CASE_INSENSITIVE_ORDER |
Компаратор, который упорядочивает объекты String как по compareToIgnoreCase. |
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
String() |
Инициализирует новый объект String так, чтобы он представлял пустую последовательность символов. |
String |
Создает новый объект String, декодируя указанный массив байтов с использованием кодировки по умолчанию платформы. |
String |
Устарело. Этот метод не правильно преобразует байты в символы. |
String |
Создает новый объект String, декодируя указанный подмассив байтов с использованием кодировки по умолчанию платформы. |
String |
Устарело. Этот метод не правильно преобразует байты в символы. |
String |
Создает новый объект String, декодируя указанный подмассив байтов с использованием указанной кодировки. |
String |
Создает новый объект String, декодируя указанный подмассив байтов с использованием указанной кодировки charset. |
String |
Создает новый объект String, декодируя указанный массив байтов с использованием указанной кодировки charset. |
String |
Создает новый объект String, декодируя указанный массив байтов с использованием указанной кодировки charset. |
String |
Выделяет новый объект String, представляющий последовательность символов, содержащихся в аргументе массива символов. |
String |
Выделяет новый объект String, содержащий символы из подмассива аргумента массива символов. |
String |
Выделяет новый объект String, содержащий символы из подмассива аргумента массива кодовых точек Unicode. |
String |
Инициализирует новый объект String так, чтобы он представлял ту же последовательность символов, что и аргумент; другими словами, созданная строка является копией аргументной строки. |
String |
Выделяет новую строку, содержащую последовательность символов, содержащихся в буфере строк аргумента. |
String |
Выделяет новую строку, содержащую последовательность символов, содержащихся в строке построения аргумента. |
Краткое описание методов
| Modifier and Type | Method | Description |
|---|---|---|
char |
charAt |
Возвращает значение char по указанному индексу. |
IntStream |
chars() |
Возвращает поток int, расширяя значения char из этой последовательности нулями. |
int |
codePointAt |
Возвращает символ (код Юникода) по указанному индексу. |
int |
codePointBefore |
Возвращает символ (код Юникода) перед указанным индексом. |
int |
codePointCount |
Возвращает количество символов Юникода в указанном текстовом диапазоне этой String. |
IntStream |
codePoints() |
Возвращает поток значений кодов символов из этой последовательности. |
int |
compareTo |
Сравнивает две строки лексикографически. |
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<String> |
describeConstable() |
Возвращает Optional, содержащий номинальный дескриптор для этого экземпляра, который является самим экземпляром. |
boolean |
endsWith |
Проверяет, заканчивается ли эта строка указанным суффиксом. |
boolean |
equals |
Сравнивает эту строку с указанным объектом. |
boolean |
equalsIgnoreCase |
Сравнивает эту String с другой String, игнорируя различия в регистре. |
static String |
format |
Возвращает отформатированную строку, используя указанную строку формата и аргументы. |
static String |
format |
Возвращает отформатированную строку, используя указанный локаль, строку формата и аргументы. |
String |
formatted |
Форматирует, используя эту строку в качестве строки формата и предоставленные аргументы. |
byte[] |
getBytes() |
Кодирует эту String в последовательность байтов, используя кодировку по умолчанию платформы, сохраняя результат в новый массив байтов. |
void |
getBytes |
Устарело. Этот метод некорректно преобразует символы в байты. |
byte[] |
getBytes |
Кодирует эту String в последовательность байтов, используя указанную кодировку, сохраняя результат в новый массив байтов. |
byte[] |
getBytes |
Кодирует эту String в последовательность байтов, используя заданную кодировку, сохраняя результат в новый массив байтов. |
void |
getChars |
Копирует символы из этой строки в целевой массив символов. |
int |
hashCode() |
Возвращает код хэша для этой строки. |
String |
indent |
Настраивает отступы каждой строки этой строки на основе значения n, и нормализует символы завершения строки. |
int |
indexOf |
Возвращает индекс в этой строке первого вхождения указанного символа. |
int |
indexOf |
Возвращает индекс в этой строке первого вхождения указанного символа, начиная поиск с указанного индекса. |
int |
indexOf |
Возвращает индекс в этой строке первого вхождения указанной подстроки. |
int |
indexOf |
Возвращает индекс в этой строке первого вхождения указанной подстроки, начиная с указанного индекса. |
String |
intern() |
Возвращает каноническое представление объекта строки. |
boolean |
isBlank() |
|
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<String> |
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 |
Разделяет эту строку по совпадениям с заданным регулярным выражением. |
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. |
Подробное описание полей
CASE_INSENSITIVE_ORDER
public static final Comparator<String> CASE_INSENSITIVE_ORDER
String по принципу compareToIgnoreCase. Этот компаратор сериализуем. Обратите внимание, что этот компаратор не учитывает локаль и может привести к неудовлетворительному упорядочиванию в некоторых локалях. Класс Collator обеспечивает локально-зависимое сравнение.
- С момента:
- 1.2
- См. также:
Подробное описание конструкторов
String
public String()
String, представляющий пустую последовательность символов. Обратите внимание, что использование этого конструктора не является необходимым, так как строки неизменяемы.String
public String(String original)
String, представляющий такую же последовательность символов, как и аргумент; другими словами, новая строка является копией аргументной строки. Если явная копия original не нужна, использование этого конструктора не требуется, так как строки неизменяемы.- Параметры:
-
original- Строка
String
public String(char[] value)
String, которая представляет последовательность символов, в настоящее время содержащихся в массиве символов. Содержимое массива символов копируется; последующее изменение массива символов не влияет на только что созданную строку.- Параметры:
-
value- Начальное значение строки
String
public String(char[] value, int offset, int count)
String, содержащую символы из подмассива аргумента массива символов. Аргумент offset — индекс первого символа подмассива, а аргумент count указывает длину подмассива. Содержимое подмассива копируется; последующее изменение массива символов не влияет на только что созданную строку.- Параметры:
-
value- Массив, являющийся источником символов -
offset- Начальное смещение -
count- Длина - Исключения:
-
IndexOutOfBoundsException- Еслиoffsetотрицательно,countотрицательно илиoffsetбольшеvalue.length - count
String
public String(int[] codePoints, int offset, int count)
String, содержащую символы из подмассива аргумента массива кодовых точек Юникода. Аргумент 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)
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
@Deprecated(since="1.1") public String(byte[] ascii, int hibyte)
String, принимающие Charset, имя набора символов или использующие системный набор символов по умолчанию.String, содержащую символы, построенные из массива целых значений 8-битного типа. Каждый символ c в результирующей строке строится из соответствующего компонента b в массиве байтов следующим образом:
c == (char)(((hibyte & 0xff) << 8)
| (b & 0xff))
- Параметры:
-
ascii- Байты, которые должны быть преобразованы в символы -
hibyte- Верхние 8 бит каждого 16-битного Юникода - См. также:
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 следует использовать, когда требуется больше контроля над процессом декодирования.
- Parameters:
-
bytes- Байты, которые нужно декодировать в символы -
charsetName- Имя поддерживаемого кодирования - Throws:
-
UnsupportedEncodingException- Если указанное кодирование не поддерживается - Since:
- 1.1
String
public String(byte[] bytes, Charset charset)
String, декодируя указанный массив байтов с помощью указанного кодирования. Длина нового объекта String зависит от кодирования и, следовательно, может не совпадать с длиной массива байтов. Этот метод всегда заменяет некорректные входные данные и неотображаемые символы на строку замены по умолчанию этого кодирования. Класс CharsetDecoder следует использовать, когда требуется больше контроля над процессом декодирования.
- Parameters:
-
bytes- Байты, которые нужно декодировать в символы -
charset- Кодирование, используемое для декодированияbytes - Since:
- 1.6
String
public String(byte[] bytes, int offset, int length)
String, декодируя указанный подмассив байтов с использованием кодирования по умолчанию платформы. Длина нового объекта String зависит от кодирования и, следовательно, может не совпадать с длиной подмассива. Поведение данного конструктора в случае, когда заданные байты некорректны для кодирования по умолчанию, не определено. Класс CharsetDecoder следует использовать, когда требуется больше контроля над процессом декодирования.
- Parameters:
-
bytes- Байты, которые нужно декодировать в символы -
offset- Индекс первого байта для декодирования -
length- Количество байтов для декодирования - Throws:
-
IndexOutOfBoundsException- Еслиoffsetотрицательно,lengthотрицательно илиoffsetбольше, чемbytes.length - length - Since:
- 1.1
String
public String(byte[] bytes)
String, декодируя указанный массив байтов с использованием кодирования по умолчанию платформы. Длина нового объекта
String зависит от кодирования и, следовательно, может не совпадать с длиной массива байтов. Поведение данного конструктора в случае, когда заданные байты некорректны для кодирования по умолчанию, не определено. Класс CharsetDecoder следует использовать, когда требуется больше контроля над процессом декодирования.
- Parameters:
-
bytes- Байты, которые нужно декодировать в символы - Since:
- 1.1
String
public String(StringBuffer buffer)
- Parameters:
-
buffer- Буфер строк
String
public String(StringBuilder builder)
Этот конструктор предоставлен для облегчения миграции к
StringBuilder. Получение строки из билдера строк с помощью метода
toString скорее всего, будет выполняться быстрее и обычно предпочтительнее.
- Parameters:
-
builder- Билдер строк - Since:
- 1.5
Методы
length
public int length()
- Specified by:
-
lengthв интерфейсеCharSequence - Returns:
- длина последовательности символов, представленной этим объектом.
isEmpty
public boolean isEmpty()
- Specified by:
-
isEmptyв интерфейсеCharSequence - Returns:
-
trueеслиlength()равно0, в противном случаеfalse - Since:
- 1.6
charAt
public char charAt(int index)
char по указанному индексу. Индекс изменяется от 0 до length() - 1. Первое значение char последовательности находится по индексу 0, следующее по индексу 1, и так далее, как и для индексов массивов. Если значение char , указанное индексом, является замещающим, возвращается значение суррогата.
- Specified by:
-
charAtв интерфейсеCharSequence - Parameters:
-
index- индекс значенияchar. - Returns:
- значение
charпо указанному индексу этой строки. Первое значениеcharнаходится по индексу0. - Throws:
-
IndexOutOfBoundsException- если аргументindexотрицательный или не меньше длины этой строки.
codePointAt
public int codePointAt(int index)
char (единицам Юникода) и изменяется от 0 до length() - 1. Если значение char по указанному индексу находится в диапазоне высоких суррогатов, следующий индекс меньше длины этой строки String, и значение char по следующему индексу находится в диапазоне низких суррогатов, то возвращается дополнительный кодовый пункт, соответствующий этой паре суррогатов. В противном случае возвращается значение char по указанному индексу.
- Parameters:
-
index- индекс к значениямchar - Returns:
- значение кодового пункта символа по указанному
index - Throws:
-
IndexOutOfBoundsException- если аргументindexотрицательный или не меньше длины этой строки. - Since:
- 1.5
codePointBefore
public int codePointBefore(int index)
char (единицам Юникода) и изменяется от 1 до length. Если значение char по (index - 1) находится в диапазоне низких суррогатов, (index - 2) не отрицательно, и значение char по (index -
2) находится в диапазоне высоких суррогатов, то возвращается дополнительное значение кодового пункта пары суррогатов. Если значение char по index -
1 является неспаренным низким суррогатом или высоким суррогатом, возвращается значение суррогата.
- Parameters:
-
index- индекс, следующий за кодовым пунктом, который должен быть возвращён - Returns:
- значение кодового пункта Юникода перед заданным индексом.
- Throws:
-
IndexOutOfBoundsException- если аргументindexменьше 1 или больше длины этой строки. - Since:
- 1.5
codePointCount
public int codePointCount(int beginIndex, int endIndex)
String. Диапазон текста начинается по указанному beginIndex и заканчивается по char по индексу endIndex - 1. Таким образом, длина (в chars) диапазона текста составляет endIndex-beginIndex. Неспаренные суррогаты в текстовом диапазоне учитываются как по одному кодовому пункту каждый.- Parameters:
-
beginIndex- индекс к первомуcharдиапазона текста. -
endIndex- индекс после последнегоcharдиапазона текста. - Returns:
- количество кодовых пунктов Юникода в указанном текстовом диапазоне
- Throws:
-
IndexOutOfBoundsException- еслиbeginIndexотрицательно, илиendIndexбольше длины этойString, илиbeginIndexбольше, чемendIndex. - Since:
- 1.5
offsetByCodePoints
public int offsetByCodePoints(int index, int codePointOffset)
String , смещённый от данного index на codePointOffset код-точек. Неспаренные суррогаты в текстовом диапазоне, заданном index и codePointOffset, считаются по одной код-точке.- Parameters:
-
index- индекс, который нужно сместить -
codePointOffset- смещение в код-точках - Returns:
- индекс в этой
String - Throws:
-
IndexOutOfBoundsException- еслиindexотрицательный или больше длины этойString, или еслиcodePointOffsetположительный и подстрока, начинающаяся сindex, содержит меньшеcodePointOffsetкод-точек, или еслиcodePointOffsetотрицательный и подстрока передindexсодержит меньше модуляcodePointOffsetкод-точек. - Since:
- 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
- Parameters:
-
srcBegin- индекс первого символа в строке для копирования. -
srcEnd- индекс после последнего символа в строке для копирования. -
dst- целевой массив. -
dstBegin- смещение начала в целевом массиве. - Throws:
-
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)
getBytes(), который использует системную кодировку по умолчанию.Первый копируемый символ находится по индексу srcBegin; последний копируемый символ находится по индексу srcEnd-1. Общее количество копируемых символов равно srcEnd-srcBegin. Символы, преобразованные в байты, копируются в подмассив
dst , начиная с индекса dstBegin и заканчивая индексом:
dstBegin + (srcEnd-srcBegin) - 1
- Parameters:
-
srcBegin- Индекс первого символа в строке для копирования -
srcEnd- Индекс после последнего символа в строке для копирования -
dst- Целевой массив -
dstBegin- Смещение начала в целевом массиве - Throws:
-
IndexOutOfBoundsException- Если выполняется хотя бы одно из следующих условий:-
srcBeginотрицательный -
srcBeginбольшеsrcEnd -
srcEndбольше длины этой строки -
dstBeginотрицательный -
dstBegin+(srcEnd-srcBegin)большеdst.length
-
getBytes
public byte[] getBytes(String charsetName) throws UnsupportedEncodingException
String в последовательность байтов, используя указанную кодировку, сохраняя результат в новый массив байтов. Поведение этого метода, когда эта строка не может быть закодирована в заданной кодировке, не определено. Для более тонкого управления процессом кодирования следует использовать класс CharsetEncoder.
- Parameters:
-
charsetName- Название поддерживаемой кодировки - Returns:
- Результирующий массив байтов
- Throws:
-
UnsupportedEncodingException- Если указанная кодировка не поддерживается - Since:
- 1.1
getBytes
public byte[] getBytes(Charset charset)
String в последовательность байтов, используя указанную кодировку, сохраняя результат в новый массив байтов. Этот метод всегда заменяет некорректные входные данные и неотображаемые символы на стандартный массив замены этой кодировки. Для более тонкого управления процессом кодирования следует использовать класс CharsetEncoder.
- Parameters:
-
charset- Кодировка , которая должна использоваться для кодированияString - Returns:
- Результирующий массив байтов
- Since:
- 1.6
getBytes
public byte[] getBytes()
String в последовательность байтов, используя системную кодировку по умолчанию, сохраняя результат в новый массив байтов. Поведение этого метода, когда эта строка не может быть закодирована в системной кодировке по умолчанию, не определено. Для более тонкого управления процессом кодирования следует использовать класс CharsetEncoder.
- Returns:
- Результирующий массив байтов
- Since:
- 1.1
equals
public boolean equals(Object anObject)
true тогда и только тогда, когда аргумент не null и является объектом типа
String , представляющим ту же последовательность символов, что и этот объект. Для более подробного сравнения строк обратитесь к Collator.
- Overrides:
-
equalsв классеObject - Parameters:
-
anObject- Объект для сравнения с этойString - Returns:
-
true, если заданный объект представляетString, эквивалентную этой строке,falseв противном случае - See Also:
contentEquals
public boolean contentEquals(StringBuffer sb)
StringBuffer. Результат является true тогда и только тогда, когда эта String представляет ту же последовательность символов, что и указанный StringBuffer. Этот метод синхронизируется на StringBuffer. Для более подробного сравнения строк обратитесь к Collator.
- Parameters:
-
sb- УказанныйStringBufferдля сравнения с этойString - Returns:
-
true, если этаStringпредставляет ту же последовательность символов, что и указанныйStringBuffer,falseв противном случае - Since:
- 1.4
contentEquals
public boolean contentEquals(CharSequence cs)
CharSequence. Результат является true тогда и только тогда, когда эта String представляет ту же последовательность символов, что и указанная последовательность. Обратите внимание, что если CharSequence является StringBuffer , то метод синхронизируется на нём. Для более подробного сравнения строк обратитесь к Collator.
- Parameters:
-
cs- Последовательность для сравнения с этойString - Returns:
-
true, если этаStringпредставляет ту же последовательность символов, что и указанная последовательность,falseв противном случае - Since:
- 1.5
equalsIgnoreCase
public boolean equalsIgnoreCase(String anotherString)
String с другим String, игнорируя регистр. Две строки считаются равными, игнорируя регистр, если они имеют одинаковую длину и соответствующие кодовые точки Юникода в двух строках равны, игнорируя регистр. Две кодовые точки Юникода считаются одинаковыми, игнорируя регистр, если выполняется хотя бы одно из следующих условий:
- Две кодовые точки Юникода одинаковые (как сравниваются оператором
==) - Вызов
Character.toLowerCase(Character.toUpperCase(int))для каждой кодовой точки Юникода даёт одинаковый результат
Обратите внимание, что этот метод не учитывает локаль и может привести к неудовлетворительным результатам для некоторых локалей. Класс Collator обеспечивает сравнение, учитывающее локаль.
- Parameters:
-
anotherString- СравниваемаяStringстрока - Returns:
-
trueесли аргумент неnullи он представляет собой эквивалентнуюStringстроку, игнорируя регистр;falseв противном случае - See Also:
compareTo
public int compareTo(String anotherString)
String объектом, сравнивается лексикографически с последовательностью символов, представленной строкой-аргументом. Результат — отрицательное целое число, если этот String объект лексикографически предшествует строке-аргументу. Результат — положительное целое число, если этот String объект лексикографически следует за строкой-аргументом. Результат равен нулю, если строки равны; compareTo возвращает 0 точно тогда, когда метод equals(Object) возвращает true. Это определение лексикографического порядка. Если две строки различаются, то либо у них разные символы в некотором индексе, являющемся допустимым индексом для обеих строк, либо их длины разные, либо оба случая. Если у них разные символы в одной или нескольких позициях индекса, пусть k — наименьший такой индекс; тогда строка, символ которой в позиции k имеет меньшее значение, как определено с помощью оператора <, лексикографически предшествует другой строке. В этом случае, compareTo возвращает разность значений двух символов в позиции k в двух строках — то есть значение:
Если нет позиции индекса, в которой они различаются, то более короткая строка лексикографически предшествует более длинной строке. В этом случае,this.charAt(k)-anotherString.charAt(k)
compareTo возвращает разность длин строк — то есть значение: this.length()-anotherString.length()
Для более тонкого сравнения строк см. Collator.
- Specified by:
-
compareToв интерфейсеComparable<String> - Parameters:
-
anotherString- сравниваемаяStringстрока. - Returns:
- значение
0, если строка-аргумент равна этой строке; значение меньше0, если эта строка лексикографически меньше строки-аргумента; и значение больше0, если эта строка лексикографически больше строки-аргумента.
compareToIgnoreCase
public int compareToIgnoreCase(String str)
compareTo с вариантами строк, в которых регистр изменён, и различия в регистре устранены путём вызова Character.toLowerCase(Character.toUpperCase(int)) для каждой кодовой точки Юникода. Обратите внимание, что этот метод не учитывает локаль и может привести к неудовлетворительному порядку для некоторых локалей. Класс Collator обеспечивает сравнение, учитывающее локаль.
- Parameters:
-
str- сравниваемаяStringстрока. - Returns:
- отрицательное, нулевое или положительное целое число, в зависимости от того, является ли заданная строка больше, равна или меньше этой строки, игнорируя регистр.
- Since:
- 1.2
- See Also:
regionMatches
public boolean regionMatches(int toffset, String other, int ooffset, int len)
Подстрока этого String объекта сравнивается с подстрокой аргумента other. Результат — true, если эти подстроки представляют одинаковые последовательности символов. Подстрока этого String объекта для сравнения начинается с индекса toffset и имеет длину len. Подстрока other для сравнения начинается с индекса ooffset и имеет длину len. Результат — false тогда и только тогда, когда выполняется хотя бы одно из следующих условий:
-
toffsetотрицательно. -
ooffsetотрицательно. -
toffset+lenбольше длины этогоStringобъекта. -
ooffset+lenбольше длины аргумента other. - Существует некоторое неотрицательное целое число k, меньшее
len, такое что:this.charAt(toffset +k) != other.charAt(ooffset +k)
Обратите внимание, что этот метод не учитывает локаль. Класс Collator обеспечивает сравнение, учитывающее локаль.
- Parameters:
-
toffset- начальный смещение подстроки в этой строке. -
other- строка-аргумент. -
ooffset- начальный смещение подстроки в строке-аргументе. -
len- число сравниваемых символов. - Returns:
-
trueесли указанная подстрока этой строки точно совпадает с указанной подстрокой строки-аргумента;falseв противном случае.
regionMatches
public boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
Подстрока этого String объекта сравнивается с подстрокой аргумента other. Результат — true если эти подстроки представляют последовательности кодовых точек Юникода, которые совпадают, игнорируя регистр, если и только если ignoreCase равно true. Последовательности tsequence и osequence сравниваются, где tsequence — последовательность, полученная как если бы был вызван this.substring(toffset, toffset + len).codePoints(), а osequence — последовательность, полученная как если бы был вызван other.substring(ooffset, ooffset + len).codePoints(). Результат — true тогда и только тогда, когда выполняются все следующие условия:
-
toffsetнеотрицательно. -
ooffsetнеотрицательно. -
toffset+lenменьше или равно длине этогоStringобъекта. -
ooffset+lenменьше или равно длине другого аргумента. - Если
ignoreCaseравноfalse, все пары соответствующих кодовых точек Юникода — равные целые значения; или еслиignoreCaseравноtrue,Character.toLowerCase(Character.toUpperCase(int))по всем парам кодовых точек Юникода приводит к равным целым значениям.
Обратите внимание, что этот метод не учитывает локаль и приведёт к неудовлетворительным результатам для некоторых локалей, когда ignoreCase равно true. Класс Collator обеспечивает сравнение, учитывающее локаль.
- Parameters:
-
ignoreCase- если true, при сравнении символов игнорировать регистр. -
toffset- начальный смещение подстроки в этой строке. -
other- строка-аргумент. -
ooffset- начальный смещение подстроки в строке-аргументе. -
len- число символов (единиц кодов Юникода — 16-битноеcharзначение) для сравнения. - Returns:
-
trueесли указанная подстрока этой строки соответствует указанной подстроке строки-аргумента;falseв противном случае. Точный или чувствительный к регистру характер соответствия зависит от аргументаignoreCase. - See Also:
startsWith
public boolean startsWith(String prefix, int toffset)
- Parameters:
-
prefix- префикс. -
toffset- где начинать поиск в этой строке. - Returns:
-
trueесли последовательность символов, представленная аргументом, является префиксом подстроки этого объекта, начинающейся с индексаtoffset;falseв противном случае. Результат —falseеслиtoffsetотрицательно или больше длины этогоStringобъекта; в противном случае результат такой же, как и результат выраженияthis.substring(toffset).startsWith(prefix)
startsWith
public boolean startsWith(String prefix)
- Параметры:
-
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 - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
indexOf
public int indexOf(int ch)
ch встречается в последовательности символов, представленной этим String объектом, то возвращается индекс (в единицах кода Юникода) первого такого вхождения. Для значений ch в диапазоне от 0 до 0xFFFF (включительно), это наименьшее значение k, при котором: верно. Для других значенийthis.charAt(k) == ch
ch, это наименьшее значение k, при котором: верно. В любом случае, если такой символ не встречается в этой строке, то возвращаетсяthis.codePointAt(k) == ch
-1. - Параметры:
-
ch- символ (код Юникода). - Возвращает:
- индекс первого вхождения символа в последовательность символов, представленную этим объектом, или
-1если символ не встречается.
indexOf
public int indexOf(int ch, int fromIndex)
Если символ со значением ch встречается в последовательности символов, представленной этим String объектом, с индексом не меньше fromIndex, то возвращается индекс первого такого вхождения. Для значений ch в диапазоне от 0 до 0xFFFF (включительно), это наименьшее значение k, при котором:
верно. Для других значений(this.charAt(k) == ch)&&(k >= fromIndex)
ch, это наименьшее значение k, при котором: верно. В любом случае, если такой символ не встречается в этой строке на позиции или после позиции(this.codePointAt(k) == ch)&&(k >= fromIndex)
fromIndex, то возвращается -1. Нет ограничений на значение fromIndex. Если оно отрицательно, это эквивалентно тому, что оно равно нулю: вся строка может быть просмотрена. Если оно больше длины этой строки, это эквивалентно тому, что оно равно длине этой строки: возвращается -1.
Все индексы указаны в значениях char (единицы кода Юникода).
- Параметры:
-
ch- символ (код Юникода). -
fromIndex- индекс, с которого начать поиск. - Возвращает:
- индекс первого вхождения символа в последовательность символов, представленную этим объектом, который больше или равен
fromIndex, или-1если символ не встречается.
lastIndexOf
public int lastIndexOf(int ch)
ch в диапазоне от 0 до 0xFFFF (включительно), возвращаемый индекс (в единицах кода Юникода) — это наибольшее значение k, такое что: верно. Для других значенийthis.charAt(k) == ch
ch, это наибольшее значение k, такое что: верно. В любом случае, если такой символ не встречается в этой строке, то возвращаетсяthis.codePointAt(k) == ch
-1. Поиск по String ведётся в обратном порядке, начиная с последнего символа.- Параметры:
-
ch- символ (код Юникода). - Возвращает:
- индекс последнего вхождения символа в последовательность символов, представленную этим объектом, или
-1если символ не встречается.
lastIndexOf
public int lastIndexOf(int ch, int fromIndex)
ch в диапазоне от 0 до 0xFFFF (включительно), возвращаемый индекс — это наибольшее значение k, такое что: верно. Для других значений(this.charAt(k) == ch)&&(k <= fromIndex)
ch, это наибольшее значение k, такое что: верно. В любом случае, если такой символ не встречается в этой строке на позиции или до позиции(this.codePointAt(k) == ch)&&(k <= fromIndex)
fromIndex, то возвращается -1. Все индексы указаны в значениях char (единицы кода Юникода).
- Параметры:
-
ch- символ (код Юникода). -
fromIndex- индекс, с которого начать поиск. Нет ограничений на значениеfromIndex. Если оно больше или равно длине этой строки, это эквивалентно тому, что оно равно на единицу меньше длины этой строки: вся строка может быть просмотрена. Если оно отрицательно, это эквивалентно тому, что оно равно -1: возвращается -1. - Возвращает:
- индекс последнего вхождения символа в последовательность символов, представленную этим объектом, которое меньше или равно
fromIndex, или-1если символ не встречается до этой точки.
indexOf
public int indexOf(String str)
Возвращаемый индекс — это наименьшее значение k для которого:
this.startsWith(str, k)
Если такого значения k не существует, то возвращается -1. - Параметры:
-
str- подстрока, которую нужно найти. - Возвращает:
- индекс первого вхождения указанной подстроки, или
-1если такого вхождения нет.
indexOf
public int indexOf(String str, int fromIndex)
Возвращаемый индекс — это наименьшее значение k для которого:
k >= Math.min(fromIndex, this.length()) &&
this.startsWith(str, k)
Если такого значения k не существует, то возвращается -1. - Параметры:
-
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
- См. также:
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(java.lang.String). Используйте Matcher.quoteReplacement(java.lang.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(java.lang.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
- См. также:
split
public String[] split(String regex)
Этот метод работает так, как если бы он вызывал двухаргументный метод split с заданным выражением и аргументом предела, равным нулю. Следовательно, завершающие пустые строки не включаются в возвращаемый массив.
Строка "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- элементы, которые нужно объединить. - Возвращает:
- новая строка, которая составлена из
elementsи разделенаdelimiter - Исключения:
-
NullPointerException- Еслиdelimiterилиelementsравно null - С тех пор:
- 1.8
- См. также:
join
public static String join(CharSequence delimiter, Iterable<? extends CharSequence> elements)
CharSequence elements вместе с копией указанного delimiter. Например,Обратите внимание, что если отдельный элемент равен null, то добавляется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. - Параметры:
-
delimiter- последовательность символов, используемая для разделения каждого изelementsв результирующей строке -
elements- итерируемый объект, содержащий элементы, которые будут объединены. - Возвращает:
- новая строка, составленная из элементов аргумента
- Исключения:
-
NullPointerException- Еслиdelimiterилиelementsравно null - С тех пор:
- 1.8
- См. также:
toLowerCase
public String toLowerCase(Locale locale)
String в строчные буквы в соответствии с правилами заданного Locale. Преобразование регистров основано на версии стандарта Unicode, указанной классом Character. Поскольку преобразования регистров не всегда являются однозначными преобразованиями символов, результирующая строка может иметь разную длину по сравнению с исходной строкой. Примеры преобразований в нижний регистр показаны в следующей таблице:
| Код языка локали | Верхний регистр | Нижний регистр | Описание |
|---|---|---|---|
| tr (турецкий) | \u0130 | \u0069 | заглавная буква I с точкой сверху -> строчная буква i |
| tr (турецкий) | \u0049 | \u0131 | заглавная буква I -> строчная буква без точки i |
| (все) | French Fries | french fries | преобразование всех символов строки в нижний регистр |
| (все) | ΙΧΘΥΣ | ιχθυσ | преобразование всех символов строки в нижний регистр |
- Параметры:
-
locale- использовать правила преобразования регистра для данной локали - Возвращает:
- строка, преобразованная в нижний регистр.
- С тех пор:
- 1.1
- См. также:
toLowerCase
public String toLowerCase()
String в нижний регистр в соответствии с правилами стандартной локали. Это эквивалентно вызову toLowerCase(Locale.getDefault()). Примечание: Этот метод чувствителен к локали и может давать неожиданные результаты, если используется для строк, которые должны интерпретироваться независимо от локали. Примерами являются идентификаторы языков программирования, ключи протоколов и теги HTML. Например, "TITLE".toLowerCase() в турецкой локали возвращает "t\u0131tle", где '\u0131' — символ LATIN SMALL LETTER DOTLESS I. Чтобы получить правильные результаты для локали-независимых строк, используйте toLowerCase(Locale.ROOT).
- Возвращает:
- строка, преобразованная в нижний регистр.
- См. также:
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 | малая буква sharp s -> две буквы: SS |
| (все) | Fahrvergnügen | FAHRVERGNÜGEN |
- Параметры:
-
locale- использовать правила преобразования регистра для данной локали - Возвращает:
- строка
String, преобразованная в верхний регистр. - С:
- 1.1
- См. также:
toUpperCase
public String toUpperCase()
String в верхний регистр, используя правила по умолчанию локали. Этот метод эквивалентен toUpperCase(Locale.getDefault()). Примечание: Этот метод чувствителен к локали и может давать неожиданные результаты при использовании для строк, которые должны интерпретироваться независимо от локали. Примерами являются идентификаторы языков программирования, ключи протоколов и теги HTML. Например, "title".toUpperCase() в турецкой локали возвращает "T\u0130TLE", где '\u0130' — это символ ПРОПИСНАЯ БУКВА I С ТОЧКОЙ СВЕРХУ. Для получения корректных результатов для строк, нечувствительных к локали, используйте toUpperCase(Locale.ROOT).
- Возвращает:
- строка
String, преобразованная в верхний регистр. - См. также:
trim
public String trim()
'U+0020' (символу пробела). Если этот String объект представляет пустую последовательность символов, или первый и последний символы последовательности символов, представленной этим String объектом, оба имеют коды, не являющиеся пробелом (как определено выше), то возвращается ссылка на этот String объект.
В противном случае, если все символы в этой строке являются пробелами (как определено выше), то возвращается String объект, представляющий пустую строку.
В противном случае, пусть k — индекс первого символа в строке, код которого не является пробелом (как определено выше), и пусть m — индекс последнего символа в строке, код которого не является пробелом (как определено выше). Возвращается String объект, представляющий подстроку этой строки, начинающуюся с символа с индексом k и заканчивающуюся символом с индексом m — то есть результат this.substring(k, m + 1).
Этот метод может использоваться для удаления пробелов (как определено выше) из начала и конца строки.
- Возвращает:
- строка, значение которой равно данной строке, со всеми начальными и конечными пробелами удалены, или эта строка, если у неё нет начальных или конечных пробелов.
strip
public String strip()
Если этот String объект представляет пустую строку, или все коды символов в этой строке являются пробелами, то возвращается пустая строка.
В противном случае, возвращается подстрока этой строки, начинающаяся с первого символа, который не является пробелом, до и включая последний символ, который не является пробелом.
Этот метод может быть использован для удаления пробелов с начала и конца строки.
- Возвращает:
- строка, значение которой равно данной строке, с удаленными всеми начальными и конечными пробелами
- С:
- 11
- См. также:
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 , то строка остается без изменений. Однако, символы конца строки по-прежнему нормализуются.
- Parameters:
-
n- количество ведущих пробелов для добавления или удаления - Returns:
- строка с отступами и концами строк, приведенными к нормальному виду
- Since:
- 12
- See Also:
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 Note:
- Основная цель этого метода — максимально сдвинуть блок строк влево, сохраняя относительные отступы. Таким образом, строки с наименьшими отступами не будут иметь ведущих пробелов. Результат будет иметь такое же количество символов конца строки, как и эта строка. Если эта строка заканчивается символом конца строки, то результат также будет заканчиваться символом конца строки.
- Implementation Requirements:
- Этот метод обрабатывает все символы пробела как имеющие одинаковую ширину. Пока отступы каждой строки состоят из одних и тех же последовательностей символов, результат будет таким, как описано выше.
- Returns:
- строка с удаленными случайными отступами и нормализованными символами конца строки
- Since:
- 15
- See Also:
translateEscapes
public String translateEscapes()
Экранированные последовательности преобразуются следующим образом;
| Escape | Name | Translation |
|---|---|---|
\b | backspace | 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> | продолжение | отбрасывается |
- Implementation Note:
- Этот метод не преобразует Unicode escape, такие как "
\u2022". Unicode escape преобразуются компилятором Java при чтении символов входных данных и не являются частью спецификации строковой литералы. - Returns:
- Строка с преобразованными экранированными последовательностями.
- Throws:
-
IllegalArgumentException- если экранированная последовательность имеет неправильный формат. - See Java Language Specification:
- 3.10.7 Экранированные последовательности
- Since:
- 15
transform
public <R> R transform(Function<? super String,? extends R> f)
this строке. Функция должна ожидать один аргумент String и возвращать R результат. Любое исключение, сгенерированное f.apply(), будет передано вызывающей стороне.
- Type Parameters:
-
R- тип результата - Parameters:
-
f- функция для применения - Returns:
- результат применения функции к этой строке
- Since:
- 12
- See Also:
toString
public String toString()
- Specified by:
-
toStringв интерфейсеCharSequence - Overrides:
-
toStringв классеObject - Returns:
- сама строка.
chars
public IntStream chars()
int значений из этой последовательности. Любой символ, который отображается на супровую кодовую точку, передается без интерпретации.- Specified by:
-
charsв интерфейсеCharSequence - Returns:
- IntStream значений char из этой последовательности
- Since:
- 9
codePoints
public IntStream codePoints()
int значений, которые затем передаются в поток.- Specified by:
-
codePointsв интерфейсеCharSequence - Returns:
- IntStream значений кодовых точек Unicode из этой последовательности
- Since:
- 9
toCharArray
public char[] toCharArray()
- Returns:
- новый выделенный массив символов, длина которого равна длине этой строки, и содержимое которого инициализировано последовательностью символов, представленной этой строкой.
форматировать
public static String format(String format, Object... args)
Используемый язык всегда соответствует языку, возвращаемому Locale.getDefault(Locale.Category) со значением категории FORMAT.
- Параметры:
-
format- A строка формата -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, дополнительные аргументы игнорируются. Количество аргументов может быть переменным и равным нулю. Максимальное количество аргументов ограничено максимальным размером массива Java, как определено в Спецификации виртуальной машины Java. Поведение с аргументомnullзависит от преобразования. - Возвращаемое значение:
- Отформатированная строка
- Исключение:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с заданными аргументами, задано недостаточное количество аргументов для строки формата или имеются другие ошибки. Полный список возможных ошибок форматирования см. в разделе Детали спецификации класса formatter. - С:
- 1.5
- См. также:
форматировать
public static String format(Locale l, String format, Object... args)
- Параметры:
-
l- Регион для применения при форматировании. Еслиlравноnull, локализация не применяется. -
format- A строка формата -
args- Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, дополнительные аргументы игнорируются. Количество аргументов может быть переменным и равным нулю. Максимальное количество аргументов ограничено максимальным размером массива Java, как определено в Спецификации виртуальной машины Java. Поведение с аргументомnullзависит от преобразования. - Возвращаемое значение:
- Отформатированная строка
- Исключение:
-
IllegalFormatException- Если строка формата содержит неверный синтаксис, спецификатор формата несовместим с заданными аргументами, задано недостаточное количество аргументов для строки формата или имеются другие ошибки. Полный список возможных ошибок форматирования см. в разделе Детали спецификации класса formatter. - С:
- 1.5
- См. также:
отформатированный
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- массив символов. - Возвращаемое значение:
- строка, содержащая символы массива символов.
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. - См. также:
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, 2021, 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/17/docs/api/java.base/java/lang/String.html