Класс String
- java.lang.Object
-
- java.lang.String
- Все реализованные интерфейсы:
- Serializable, CharSequence, Comparable<String>
public final class String extends Object implements Serializable, Comparable<String>, CharSequence
Класс String представляет строковые значения. Все строковые литералы в Java-программах, такие как "abc", реализованы в виде экземпляров этого класса.
Строки являются константами; их значения нельзя изменить после создания. Буферы строк поддерживают изменяемые строки. Поскольку объекты String неизменяемы, они могут быть совместно использованы. Например:
String str = "abc";
эквивалентно:
char data[] = {'a', 'b', 'c'};
String str = new String(data);
Вот несколько дополнительных примеров использования строк:
System.out.println("abc");
String cde = "cde";
System.out.println("abc" + cde);
String c = "abc".substring(2,3);
String d = cde.substring(1, 2); Класс String включает методы для проверки отдельных символов последовательности, сравнения строк, поиска в строках, извлечения подстрок и создания копии строки с преобразованием всех символов в верхний или нижний регистр. Преобразование регистра основано на версии стандарта Unicode, определенной классом Character.
Язык Java предоставляет специальную поддержку оператора конкатенации строк ( + ) и преобразования других объектов в строки. Конкатенация строк реализуется через класс StringBuilder (или StringBuffer) и его метод append. Преобразования строк реализуются через метод toString, определенный в Object и унаследованный всеми классами в Java. Дополнительную информацию о конкатенации и преобразовании строк см. в книге Gosling, Joy, и Steele, The Java Language Specification.
Если не указано иное, передача null аргумента в конструктор или метод в этом классе вызовет исключение NullPointerException.
Объект String представляет строку в формате UTF-16, в котором дополнительные символы представляются парами суррогатов (см. раздел Представления символов Unicode в классе Character для получения дополнительной информации). Значения индексов относятся к блокам кода, поэтому дополнительный символ использует две позиции в строке String.
Класс String предоставляет методы для работы с кодовыми точками Unicode (т. е. символами) помимо методов для работы с кодовыми единицами Unicode (т. е. значениями char).
- С тех пор:
- JDK1.0
- См. также:
-
Object.toString(),StringBuffer,StringBuilder,Charset, Формат сериализации
Поля
| Модификатор и тип | Поле и описание |
|---|---|
static Comparator<String> |
CASE_INSENSITIVE_ORDER Объект компаратора, который упорядочивает объекты |
Краткое описание конструкторов
| Конструктор и описание |
|---|
String() Инициализирует новый созданный объект |
String(byte[] bytes) Создаёт новый объект |
String(byte[] bytes,
Charset charset) Создаёт новый объект |
String(byte[] ascii,
int hibyte) Устаревший. Этот метод не корректно преобразует байты в символы. Начиная с JDK 1.1, предпочтительным способом является использование конструкторов |
String(byte[] bytes,
int offset,
int length) Создаёт новый объект |
String(byte[] bytes,
int offset,
int length,
Charset charset) Создаёт новый объект |
String(byte[] ascii,
int hibyte,
int offset,
int count) Устаревший. Этот метод не корректно преобразует байты в символы. Начиная с JDK 1.1, предпочтительным способом является использование конструкторов |
String(byte[] bytes,
int offset,
int length,
String charsetName) Создаёт новый объект |
String(byte[] bytes,
String charsetName) Создаёт новый объект |
String(char[] value) Выделяет новый объект |
String(char[] value,
int offset,
int count) Выделяет новый объект |
String(int[] codePoints,
int offset,
int count) Выделяет новый объект |
String(String original) Инициализирует новый объект |
String(StringBuffer buffer) Выделяет новую строку, содержащую последовательность символов, текущих в буфере строк-аргументе. |
String(StringBuilder builder) Выделяет новую строку, содержащую последовательность символов, текущих в билдере строк-аргументе. |
Методы
| Модификатор и тип | Метод и описание |
|---|---|
char |
charAt(int index) Возвращает значение в указанном индексе. |
int |
codePointAt(int index) Возвращает символ (код Юникода) в указанном индексе. |
int |
codePointBefore(int index) Возвращает символ (код Юникода) перед указанным индексом. |
int |
codePointCount(int beginIndex,
int endIndex) Возвращает количество символов Юникода в указанном текстовом диапазоне этого |
int |
compareTo(String anotherString) Сравнивает две строки лексикографически. |
int |
compareToIgnoreCase(String str) Сравнивает две строки лексикографически, игнорируя различия в регистре. |
String |
concat(String str) Конкатенирует указанную строку в конец этой строки. |
boolean |
contains(CharSequence s) Возвращает true, если и только если эта строка содержит указанную последовательность значений char. |
boolean |
contentEquals(CharSequence cs) Сравнивает эту строку с указанным |
boolean |
contentEquals(StringBuffer sb) Сравнивает эту строку с указанным |
static String |
copyValueOf(char[] data) Эквивалентно |
static String |
copyValueOf(char[] data,
int offset,
int count) Эквивалентно |
boolean |
endsWith(String suffix) Проверяет, заканчивается ли эта строка указанным суффиксом. |
boolean |
equals(Object anObject) Сравнивает эту строку с указанным объектом. |
boolean |
equalsIgnoreCase(String anotherString) Сравнивает эту |
static String |
format(Locale l,
String format,
Object... args) Возвращает отформатированную строку, используя указанный регион, строку формата и аргументы. |
static String |
format(String format,
Object... args) Возвращает отформатированную строку, используя указанную строку формата и аргументы. |
byte[] |
getBytes() Кодирует эту |
byte[] |
getBytes(Charset charset) Кодирует эту |
void |
getBytes(int srcBegin,
int srcEnd,
byte[] dst,
int dstBegin) Устарело. Этот метод не правильно преобразует символы в байты. Начиная с JDK 1.1, предпочтительным способом является использование метода |
byte[] |
getBytes(String charsetName) Кодирует эту |
void |
getChars(int srcBegin,
int srcEnd,
char[] dst,
int dstBegin) Копирует символы из этой строки в целевой массив символов. |
int |
hashCode() Возвращает код хэша для этой строки. |
int |
indexOf(int ch) Возвращает индекс в этой строке первого вхождения указанного символа. |
int |
indexOf(int ch,
int fromIndex) Возвращает индекс в этой строке первого вхождения указанного символа, начиная поиск с указанного индекса. |
int |
indexOf(String str) Возвращает индекс в этой строке первого вхождения указанной подстроки. |
int |
indexOf(String str,
int fromIndex) Возвращает индекс в этой строке первого вхождения указанной подстроки, начиная с указанного индекса. |
String |
intern() Возвращает каноническое представление объекта строки. |
boolean |
isEmpty() Возвращает |
static String |
join(CharSequence delimiter,
CharSequence... elements) Возвращает новую строку, составленную из копий |
static String |
join(CharSequence delimiter,
Iterable<? extends CharSequence> elements) Возвращает новый |
int |
lastIndexOf(int ch) Возвращает индекс в этой строке последнего вхождения указанного символа. |
int |
lastIndexOf(int ch,
int fromIndex) Возвращает индекс в этой строке последнего вхождения указанного символа, выполняя поиск назад, начиная с указанного индекса. |
int |
lastIndexOf(String str) Возвращает индекс в этой строке последнего вхождения указанной подстроки. |
int |
lastIndexOf(String str,
int fromIndex) Возвращает индекс в этой строке последнего вхождения указанной подстроки, выполняя поиск назад, начиная с указанного индекса. |
int |
length() Возвращает длину этой строки. |
boolean |
matches(String regex) Определяет, соответствует ли эта строка заданному регулярному выражению. |
int |
offsetByCodePoints(int index,
int codePointOffset) Возвращает индекс в этой |
boolean |
regionMatches(boolean ignoreCase,
int toffset,
String other,
int ooffset,
int len) Проверяет, равны ли два фрагмента строк. |
boolean |
regionMatches(int toffset,
String other,
int ooffset,
int len) Проверяет, равны ли два фрагмента строк. |
String |
replace(char oldChar,
char newChar) Возвращает строку, полученную заменой всех вхождений |
String |
replace(CharSequence target,
CharSequence replacement) Заменяет каждую подстроку этой строки, соответствующую литеральной целевой последовательности, на указанную литеральную последовательность замены. |
String |
replaceAll(String regex,
String replacement) Заменяет каждую подстроку этой строки, соответствующую заданному регулярному выражению, на заданную замену. |
String |
replaceFirst(String regex,
String replacement) Заменяет первую подстроку этой строки, соответствующую заданному регулярному выражению, на заданную замену. |
String[] |
split(String regex) Разделяет эту строку по соответствиям заданному регулярному выражению. |
String[] |
split(String regex,
int limit) Разделяет эту строку по соответствиям заданному регулярному выражению. |
boolean |
startsWith(String prefix) Проверяет, начинается ли эта строка с указанного префикса. |
boolean |
startsWith(String prefix,
int toffset) Проверяет, начинается ли подстрока этой строки, начинающаяся с указанного индекса, с указанного префикса. |
CharSequence |
subSequence(int beginIndex,
int endIndex) Возвращает последовательность символов, которая является подпоследовательностью этой последовательности. |
String |
substring(int beginIndex) Возвращает строку, которая является подстрокой этой строки. |
String |
substring(int beginIndex,
int endIndex) Возвращает строку, которая является подстрокой этой строки. |
char[] |
toCharArray() Преобразует эту строку в новый массив символов. |
String |
toLowerCase() Преобразует все символы в этой |
String |
toLowerCase(Locale locale) Преобразует все символы в этой |
String |
toString() Этот объект (который уже является строкой!) возвращается сам. |
String |
toUpperCase() Преобразует все символы в этой |
String |
toUpperCase(Locale locale) Преобразует все символы в этой |
String |
trim() Возвращает строку, значением которой является эта строка, с удаленными начальными и конечными пробелами. |
static String |
valueOf(boolean b) Возвращает строковое представление аргумента |
static String |
valueOf(char c) Возвращает строковое представление аргумента |
static String |
valueOf(char[] data) Возвращает строковое представление аргумента |
static String |
valueOf(char[] data,
int offset,
int count) Возвращает строковое представление определенного подмассива аргумента |
static String |
valueOf(double d) Возвращает строковое представление аргумента |
static String |
valueOf(float f) Возвращает строковое представление аргумента |
static String |
valueOf(int i) Возвращает строковое представление аргумента |
static String |
valueOf(long l) Возвращает строковое представление аргумента |
static String |
valueOf(Object obj) Возвращает строковое представление аргумента |
Методы, унаследованные от класса java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait Методы, унаследованные от интерфейса java.lang.CharSequence
chars, codePoints Поля
CASE_INSENSITIVE_ORDER
public static final Comparator<String> CASE_INSENSITIVE_ORDER
Сравниватель, упорядочивающий объекты String по compareToIgnoreCase. Данный сравниватель сериализуем.
Обратите внимание, что этот сравниватель не учитывает локаль и может привести к неудовлетворительному упорядочению для определенных локалей. Для чувствительного к локали упорядочения используйте Collators из пакета java.text.
- С момента:
- 1.2
- См. также:
Collator.compare(String, String)
Конструкторы
String
public String()
Инициализирует новый объект String, чтобы он представлял пустую последовательность символов. Обратите внимание, что использование этого конструктора не нужно, так как строки неизменяемы.
String
public String(String original)
Инициализирует новый объект String, чтобы он представлял ту же последовательность символов, что и аргумент; другими словами, новая строка является копией аргументной строки. Если явная копия original не нужна, использование этого конструктора не требуется, так как строки неизменяемы.
- Параметры:
-
original- AString
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индексируют символы за пределами границ массиваvalue
String
public String(int[] codePoints,
int offset,
int count) Выделяет новую String, содержащую символы из подмассива аргумента массива кодов Unicode. Аргумент offset — это индекс первого кода Unicode подмассива, а аргумент count задаёт длину подмассива. Содержимое подмассива преобразуется в char; последующее изменение массива int не влияет на вновь созданную строку.
- Параметры:
-
codePoints- Массив, являющийся источником кодов Unicode -
offset- Начальное смещение -
count- Длина - Исключения:
-
IllegalArgumentException- Если обнаружен неверный код Unicode вcodePoints -
IndexOutOfBoundsException- Если аргументыoffsetиcountиндексируют символы за пределами границ массиваcodePoints - С момента:
- 1.5
String
@Deprecated
public String(byte[] ascii,
int hibyte,
int offset,
int count) Устарело. Этот метод некорректно преобразует байты в символы. Начиная с JDK 1.1, предпочтительный способ сделать это — использовать конструкторы String, принимающие Charset, имя набора символов или использующие системный набор символов по умолчанию.
Выделяет новую String, построенную из подмассива массива 8-битовых целых значений.
Аргумент offset — это индекс первого байта подмассива, а аргумент count задаёт длину подмассива.
Каждый byte в подмассиве преобразуется в char как указано в методе выше.
- Параметры:
-
ascii- Байты, которые необходимо преобразовать в символы -
hibyte- Верхние 8 бит каждого 16-битного блока кода Unicode -
offset- Начальное смещение -
count- Длина - Исключения:
-
IndexOutOfBoundsException- Если аргументoffsetилиcountнекорректен - См. также:
-
String(byte[], int),String(byte[], int, int, java.lang.String),String(byte[], int, int, java.nio.charset.Charset),String(byte[], int, int),String(byte[], java.lang.String),String(byte[], java.nio.charset.Charset),String(byte[])
String
@Deprecated
public String(byte[] ascii,
int hibyte) Устарело. Этот метод некорректно преобразует байты в символы. Начиная с JDK 1.1, предпочтительный способ сделать это — использовать конструкторы String, принимающие Charset, имя набора символов или использующие системный набор символов по умолчанию.
Выделяет новую String, содержащую символы, построенные из массива 8-битовых целых значений. Каждый символ c в результирующей строке строится из соответствующего компонента b в массиве байтов так, что:
c == (char)(((hibyte & 0xff) << 8)
| (b & 0xff)) - Параметры:
-
ascii- Байты, которые необходимо преобразовать в символы -
hibyte- Верхние 8 бит каждого 16-битного блока кода Unicode - См. также:
-
String(byte[], int, int, java.lang.String),String(byte[], int, int, java.nio.charset.Charset),String(byte[], int, int),String(byte[], java.lang.String),String(byte[], java.nio.charset.Charset),String(byte[])
String
public String(byte[] bytes,
int offset,
int length,
String charsetName)
throws UnsupportedEncodingException Создаёт новую String путём декодирования указанного подмассива байтов с использованием указанного набора символов. Длина новой String зависит от набора символов и, следовательно, может не совпадать с длиной подмассива.
Поведение этого конструктора при отсутствии корректных байтов в заданном наборе символов не определено. Класс CharsetDecoder должен использоваться при необходимости большего контроля над процессом декодирования.
- Параметры:
-
bytes- Байты, которые необходимо декодировать в символы -
offset- Индекс первого байта для декодирования -
length- Количество байтов для декодирования -
charsetName- Имя поддерживаемого набора символов - Исключения:
-
UnsupportedEncodingException- Если заданный набор символов не поддерживается -
IndexOutOfBoundsException- Если аргументыoffsetиlengthиндексируют символы за пределами границ массиваbytes - С момента:
- JDK1.1
String
public String(byte[] bytes,
int offset,
int length,
Charset charset) Создаёт новую String путём декодирования указанного подмассива байтов с использованием указанного набора символов. Длина новой String зависит от набора символов и, следовательно, может не совпадать с длиной подмассива.
Этот метод всегда заменяет неверные последовательности входных данных и последовательности символов, не имеющие соответствия, строкой замены по умолчанию для этого набора символов. Класс CharsetDecoder должен использоваться при необходимости большего контроля над процессом декодирования.
- Параметры:
-
bytes- Байты, которые необходимо декодировать в символы -
offset- Индекс первого байта для декодирования -
length- Количество байтов для декодирования -
charset- Набор символов, используемый для декодированияbytes - Исключения:
-
IndexOutOfBoundsException- Если аргументыoffsetиlengthиндексируют символы за пределами границ массиваbytes - С момента:
- 1.6
String
public String(byte[] bytes,
String charsetName)
throws UnsupportedEncodingException Создаёт новую String путём декодирования указанного массива байтов с использованием указанного набора символов. Длина новой String зависит от набора символов и, следовательно, может не совпадать с длиной массива байтов.
Поведение этого конструктора при отсутствии корректных байтов в заданном наборе символов не определено. Класс CharsetDecoder должен использоваться при необходимости большего контроля над процессом декодирования.
- Параметры:
-
bytes- Байты, которые необходимо декодировать в символы -
charsetName- Имя поддерживаемого набора символов - Исключения:
-
UnsupportedEncodingException- Если заданный набор символов не поддерживается - С момента:
- JDK1.1
String
public String(byte[] bytes,
Charset charset) Создаёт новую String путём декодирования указанного массива байтов с использованием указанного набора символов. Длина новой String зависит от набора символов и, следовательно, может не совпадать с длиной массива байтов.
Этот метод всегда заменяет неверные последовательности входных данных и последовательности символов, не имеющие соответствия, строкой замены по умолчанию для этого набора символов. Класс CharsetDecoder должен использоваться при необходимости большего контроля над процессом декодирования.
- Параметры:
-
bytes- Байты, которые необходимо декодировать в символы -
charset- Набор символов, используемый для декодированияbytes - С момента:
- 1.6
String
public String(byte[] bytes,
int offset,
int length) Создаёт новую String путём декодирования указанного подмассива байтов с использованием системного набора символов по умолчанию. Длина новой String зависит от набора символов и, следовательно, может не совпадать с длиной подмассива.
Поведение этого конструктора при отсутствии корректных байтов в системном наборе символов по умолчанию не определено. Класс CharsetDecoder должен использоваться при необходимости большего контроля над процессом декодирования.
- Параметры:
-
bytes- Байты, которые необходимо декодировать в символы -
offset- Индекс первого байта для декодирования -
length- Количество байтов для декодирования - Исключения:
-
IndexOutOfBoundsException- Если аргументыoffsetиlengthиндексируют символы за пределами границ массиваbytes - С тех пор:
- JDK1.1
Строка
public String(byte[] bytes)
Создаёт новую строку, декодируя указанный массив байтов с использованием по умолчанию кодировки платформы. Длина новой строки зависит от кодировки и, следовательно, может не совпадать с длиной массива байтов.
Поведение этого конструктора, когда указанные байты не являются допустимыми в кодировке по умолчанию, не определено. Класс CharsetDecoder следует использовать, когда требуется больший контроль над процессом декодирования.
- Параметры:
-
bytes- Байты, которые необходимо декодировать в символы - С тех пор:
- JDK1.1
Строка
public String(StringBuffer buffer)
Выделяет новую строку, содержащую последовательность символов, которые в данный момент содержатся в аргументе буфера строк. Содержимое буфера строк копируется; последующие изменения буфера строк не влияют на вновь созданную строку.
- Параметры:
-
buffer- Буфер строк
Строка
public String(StringBuilder builder)
Выделяет новую строку, содержащую последовательность символов, которые в данный момент содержатся в аргументе билдера строк. Содержимое билдера строк копируется; последующие изменения билдера строк не влияют на вновь созданную строку.
Этот конструктор предоставляется для облегчения миграции на StringBuilder. Получение строки из билдера строк через метод toString , скорее всего, будет выполняться быстрее и обычно предпочтительнее.
- Параметры:
-
builder- Билдер строк - С тех пор:
- 1.5
Методы
length
public int length()
Возвращает длину этой строки. Длина равна количеству символов Юникода в строке.
- Определено в:
-
lengthв интерфейсеCharSequence - Возвращает:
- длину последовательности символов, представленной этим объектом.
isEmpty
public boolean isEmpty()
Возвращает true тогда и только тогда, когда length() равно 0.
- Возвращает:
-
trueеслиlength()равно0, в противном случаеfalse - С тех пор:
- 1.6
charAt
public char charAt(int index)
Возвращает значение символа в указанном индексе. Индекс изменяется от 0 до length() - 1. Первый символ последовательности находится по индексу 0, следующий по индексу 1, и так далее, как при индексировании массива.
Если значение символа, указанное индексом, является супплементарным, возвращается значение суррогата.
- Определено в:
-
charAtв интерфейсеCharSequence - Параметры:
-
index- индекс значения символа. - Возвращает:
- значение символа в указанном индексе этой строки. Первый символ находится по индексу
0. - Исключения:
-
IndexOutOfBoundsException- если аргументindexотрицателен или не меньше длины этой строки.
codePointAt
public int codePointAt(int index)
Возвращает символ (кодовое значение Юникода) в указанном индексе. Индекс относится к значениям символов (единицам Юникода) и изменяется от 0 до length()- 1.
Если значение символа, указанное в заданном индексе, находится в диапазоне высоких суррогатов, следующий индекс меньше длины этой строки, и значение символа в следующем индексе находится в диапазоне низких суррогатов, возвращается дополнительное кодовое значение, соответствующее этой паре суррогатов. В противном случае возвращается значение символа в данном индексе.
- Параметры:
-
index- индекс к значениям символов - Возвращает:
- значение кодового символа символа в
index - Исключения:
-
IndexOutOfBoundsException- если аргументindexотрицателен или не меньше длины этой строки. - С тех пор:
- 1.5
codePointBefore
public int codePointBefore(int index)
Возвращает символ (кодовое значение Юникода) перед указанным индексом. Индекс относится к значениям символов (единицам Юникода) и изменяется от 1 до length.
Если значение символа в (index - 1) находится в диапазоне низких суррогатов, (index - 2) не отрицательно, и значение символа в (index -
2) находится в диапазоне высоких суррогатов, возвращается дополнительное кодовое значение пары суррогатов. Если значение символа в index -
1 является непарным низким суррогатом или высоким суррогатом, возвращается значение суррогата.
- Параметры:
-
index- индекс, следующий за кодовым символом, который должен быть возвращён - Возвращает:
- значение кодового символа Юникода перед заданным индексом.
- Исключения:
-
IndexOutOfBoundsException- если аргументindexменьше 1 или больше длины этой строки. - С тех пор:
- 1.5
codePointCount
public int codePointCount(int beginIndex,
int endIndex) Возвращает количество символов Юникода в указанном диапазоне текста этой строки. Диапазон текста начинается в указанном beginIndex и простирается до char в индексе endIndex - 1. Таким образом, длина (в символах) диапазона текста составляет endIndex-beginIndex. Непарные суррогаты в диапазоне текста считаются по одному символу Юникода каждый.
- Параметры:
-
beginIndex- индекс первого символа диапазона текста. -
endIndex- индекс после последнего символа диапазона текста. - Возвращает:
- количество символов Юникода в указанном диапазоне текста
- Исключения:
-
IndexOutOfBoundsException- еслиbeginIndexотрицателен, илиendIndexбольше длины этой строки, илиbeginIndexбольшеendIndex. - С тех пор:
- 1.5
offsetByCodePoints
public int offsetByCodePoints(int index,
int codePointOffset) Возвращает индекс в этой строке, который смещён от данного index на codePointOffset символов. Непарные суррогаты в диапазоне текста, заданном index и codePointOffset, считаются по одному символу Юникода каждый.
- Параметры:
-
index- индекс, который необходимо сместить -
codePointOffset- смещение в кодовых точках - Возвращает:
- индекс в этой строке
- Исключения:
-
IndexOutOfBoundsException- еслиindexотрицателен или больше длины этой строки, или еслиcodePointOffsetположительно, и подстрока, начинающаяся сindex, содержит меньшеcodePointOffsetкодовых точек, или еслиcodePointOffsetотрицательно, и подстрока передindexсодержит меньше абсолютного значенияcodePointOffsetкодовых точек. - С тех пор:
- 1.5
getChars
public void getChars(int srcBegin,
int srcEnd,
char[] dst,
int dstBegin) Копирует символы из этой строки в целевой массив символов.
Первый символ, который необходимо скопировать, находится по индексу srcBegin; последний символ, который необходимо скопировать, находится по индексу srcEnd-1 (следовательно, общее количество символов для копирования составляет srcEnd-srcBegin). Символы копируются в подмассив dst, начиная с индекса dstBegin и заканчивая индексом:
dstBegin + (srcEnd-srcBegin) - 1
- Параметры:
-
srcBegin- индекс первого символа в строке для копирования. -
srcEnd- индекс после последнего символа в строке для копирования. -
dst- целевой массив. -
dstBegin- начальное смещение в целевом массиве. - Исключения:
-
IndexOutOfBoundsException- Если выполняется любое из следующих условий:-
srcBeginотрицателен. -
srcBeginбольшеsrcEnd -
srcEndбольше длины этой строки -
dstBeginотрицателен -
dstBegin+(srcEnd-srcBegin)большеdst.length
-
getBytes
@Deprecated
public void getBytes(int srcBegin,
int srcEnd,
byte[] dst,
int dstBegin) Устарело. Этот метод не правильно преобразует символы в байты. Начиная с JDK 1.1, предпочтительный способ сделать это – использовать метод getBytes(), который использует кодировку по умолчанию платформы.
Копирует символы из этой строки в целевой массив байтов. Каждый байт получает 8 младших битов соответствующего символа. Восемь старших битов каждого символа не копируются и никак не участвуют в передаче.
Первый символ, который необходимо скопировать, находится по индексу srcBegin; последний символ, который необходимо скопировать, находится по индексу srcEnd-1. Общее количество символов для копирования составляет srcEnd-srcBegin. Символы, преобразованные в байты, копируются в подмассив dst , начиная с индекса dstBegin и заканчивая индексом:
dstBegin + (srcEnd-srcBegin) - 1
- Параметры:
-
srcBegin- Индекс первого символа в строке для копирования -
srcEnd- Индекс после последнего символа в строке для копирования -
dst- Целевой массив -
dstBegin- Начальное смещение в целевом массиве - Исключения:
-
IndexOutOfBoundsException- Если выполняется любое из следующих условий:-
srcBeginотрицателен -
srcBeginбольшеsrcEnd -
srcEndбольше длины этой строки -
dstBeginотрицателен -
dstBegin+(srcEnd-srcBegin)большеdst.length
-
getBytes
public byte[] getBytes(String charsetName)
throws UnsupportedEncodingException Кодирует эту строку в последовательность байтов с использованием указанной кодировки, сохраняя результат в новом массиве байтов.
Поведение этого метода, когда эту строку нельзя закодировать с помощью данной кодировки, не определено. Класс CharsetEncoder следует использовать, когда требуется больший контроль над процессом кодирования.
- Параметры:
-
charsetName- Имя поддерживаемого кодирования символов - Возвращает:
- Полученный массив байтов
- Выбрасывает:
-
UnsupportedEncodingException- Если указанное кодирование символов не поддерживается - С:
- JDK1.1
getBytes
public byte[] getBytes(Charset charset)
Кодирует эту String в последовательность байтов с использованием заданного кодирования символов, сохраняя результат в новый массив байтов.
Этот метод всегда заменяет некорректные входные данные и неотображаемые последовательности символов на стандартный массив замены байтов этого кодирования символов. Класс CharsetEncoder следует использовать, если требуется больший контроль над процессом кодирования.
- Параметры:
-
charset- Кодирование символов, используемое для кодированияString - Возвращает:
- Полученный массив байтов
- С:
- 1.6
getBytes
public byte[] getBytes()
Кодирует эту String в последовательность байтов с использованием стандартного кодирования символов платформы, сохраняя результат в новый массив байтов.
Поведение этого метода, когда данную строку нельзя закодировать в стандартном кодировании символов платформы, не определено. Класс CharsetEncoder следует использовать, если требуется больший контроль над процессом кодирования.
- Возвращает:
- Полученный массив байтов
- С:
- JDK1.1
equals
public boolean equals(Object anObject)
Сравнивает эту строку с заданным объектом. Результат — true тогда и только тогда, когда аргумент не null и является объектом типа String, представляющим ту же последовательность символов, что и этот объект.
- Переопределяет:
-
equalsв классеObject - Параметры:
-
anObject- Объект для сравнения с этойString - Возвращает:
-
true, если заданный объект представляетStringэквивалентную этой строке,falseв противном случае - См. также:
-
compareTo(String),equalsIgnoreCase(String)
contentEquals
public boolean contentEquals(StringBuffer sb)
Сравнивает эту строку с заданным StringBuffer. Результат — true тогда и только тогда, когда эта String представляет ту же последовательность символов, что и заданный StringBuffer. Этот метод блокирует StringBuffer.
- Параметры:
-
sb-StringBufferдля сравнения с этойString - Возвращает:
-
true, если этаStringпредставляет ту же последовательность символов, что и заданныйStringBuffer,falseв противном случае - С:
- 1.4
contentEquals
public boolean contentEquals(CharSequence cs)
Сравнивает эту строку с указанной CharSequence. Результат — true тогда и только тогда, когда эта String представляет ту же последовательность символов, что и указанная последовательность. Обратите внимание, что если CharSequence является StringBuffer, то метод блокирует его.
- Параметры:
-
cs- Последовательность для сравнения с этойString - Возвращает:
-
true, если этаStringпредставляет ту же последовательность символов, что и указанная последовательность,falseв противном случае - С:
- 1.5
equalsIgnoreCase
public boolean equalsIgnoreCase(String anotherString)
Сравнивает эту String с другой String, игнорируя регистр. Две строки считаются равными, игнорируя регистр, если они имеют одинаковую длину и соответствующие символы в двух строках равны, игнорируя регистр.
Два символа c1 и c2 считаются одинаковыми, игнорируя регистр, если выполняется хотя бы одно из следующих условий:
- Два символа одинаковы (сравниваются оператором
==) - Применение метода
Character.toUpperCase(char)к каждому символу приводит к одному и тому же результату - Применение метода
Character.toLowerCase(char)к каждому символу приводит к одному и тому же результату
- Параметры:
-
anotherString-Stringдля сравнения с этойString - Возвращает:
-
true, если аргумент неnullи представляет эквивалентнуюString, игнорируя регистр;falseв противном случае - См. также:
equals(Object)
compareTo
public int compareTo(String anotherString)
Сравнивает две строки лексикографически. Сравнение основано на числовом значении каждого символа в строках. Последовательность символов, представленная этим String объектом, сравнивается лексикографически с последовательностью символов, представленной строкой-аргументом. Результат — отрицательное целое число, если этот String объект лексикографически предшествует строке-аргументу. Результат — положительное целое число, если этот String объект лексикографически следует за строкой-аргументом. Результат — ноль, если строки равны; compareTo возвращает 0 точно тогда, когда метод equals(Object) возвращает true.
Это определение лексикографического порядка. Если две строки разные, то либо у них разные символы в каком-то индексе, который является допустимым индексом для обеих строк, либо их длины разные, либо и то, и другое. Если у них разные символы в одной или нескольких позициях индексов, пусть k будет наименьшим таким индексом; тогда строка, символ которой в позиции k имеет меньшее значение, как определено оператором <, лексикографически предшествует другой строке. В этом случае, compareTo возвращает разницу между двумя значениями символов в позиции k в двух строках — то есть значение:
this.charAt(k)-anotherString.charAt(k)Если нет позиции индекса, в которой они отличаются, то более короткая строка лексикографически предшествует более длинной строке. В этом случае,
compareTo возвращает разницу длин строк — то есть значение: this.length()-anotherString.length()
- Установлено:
-
compareToв интерфейсеComparable<String> - Параметры:
-
anotherString- сравниваемаяString. - Возвращает:
- значение
0, если строка-аргумент равна этой строке; значение меньше0, если эта строка лексикографически меньше строки-аргумента; и значение больше0, если эта строка лексикографически больше строки-аргумента.
compareToIgnoreCase
public int compareToIgnoreCase(String str)
Сравнивает две строки лексикографически, игнорируя различия в регистре. Этот метод возвращает целое число, знак которого соответствует вызову compareTo с нормализованными версиями строк, где различия в регистре были устранены путем вызова Character.toLowerCase(Character.toUpperCase(character)) для каждого символа.
Обратите внимание, что этот метод не учитывает локаль и может привести к неудовлетворительному порядку для некоторых локалей. Пакет java.text предоставляет сортировщики для поддержки локальной сортировки.
- Параметры:
-
str- сравниваемаяString. - Возвращает:
- отрицательное целое число, ноль или положительное целое число, в зависимости от того, больше, равно или меньше, чем эта строка, игнорируя различия в регистре.
- С:
- 1.2
- См. также:
Collator.compare(String, String)
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)
- Параметры:
-
toffset- начальный смещение подстроки в этой строке. -
other- строка-аргумент. -
ooffset- начальное смещение подстроки в строке-аргументе. -
len- количество символов для сравнения. - Возвращает:
-
true, если указанная подстрока этой строки точно совпадает с указанной подстрокой строки-аргумента;falseв противном случае.
regionMatches
public boolean regionMatches(boolean ignoreCase,
int toffset,
String other,
int ooffset,
int len) Проверяет, равны ли две области строк.
Подстрока этого объекта String сравнивается с подстрокой аргумента other. Результат — true , если эти подстроки представляют последовательности символов, которые одинаковы, игнорируя регистр, если и только если ignoreCase истинно. Подстрока этого объекта String для сравнения начинается с индекса toffset и имеет длину len. Подстрока other для сравнения начинается с индекса ooffset и имеет длину len. Результат — false тогда и только тогда, когда выполняется хотя бы одно из следующих условий:
-
toffsetотрицательно. -
ooffsetотрицательно. -
toffset+lenбольше длины этого объектаString. -
ooffset+lenбольше длины другого аргумента. -
ignoreCaseи существует некоторое неотрицательное целое число k, меньшееlen, такое что:this.charAt(toffset+k) != other.charAt(ooffset+k)
-
ignoreCaseи существует некоторое неотрицательное целое число k, меньшееlen, такое что:Character.toLowerCase(this.charAt(toffset+k)) != Character.toLowerCase(other.charAt(ooffset+k))и:Character.toUpperCase(this.charAt(toffset+k)) != Character.toUpperCase(other.charAt(ooffset+k))
- Параметры:
-
ignoreCase- еслиtrue, игнорировать регистр при сравнении символов. -
toffset- начальный смещение подстроки в этой строке. -
other- строковый аргумент. -
ooffset- начальный смещение подстроки в строковом аргументе. -
len- количество символов для сравнения. - Возвращает:
-
trueесли указанная подстрока этой строки совпадает с указанной подстрокой строкового аргумента;falseв противном случае. Точное или регистронезависимое совпадение зависит от аргументаignoreCase.
startsWith
public boolean startsWith(String prefix,
int toffset) Проверяет, начинается ли подстрока этой строки, начиная с указанного индекса, с указанного префикса.
- Параметры:
-
prefix- префикс. -
toffset- с какой позиции начинать поиск в этой строке. - Возвращает:
-
trueесли последовательность символов, представленная аргументом, является префиксом подстроки этого объекта, начинающейся с индексаtoffset;falseв противном случае. Результат равенfalse, еслиtoffsetотрицательно или больше длины этого объектаString; в противном случае результат совпадает с результатом выраженияthis.substring(toffset).startsWith(prefix)
.
startsWith
public boolean startsWith(String prefix)
Проверяет, начинается ли эта строка с указанного префикса.
- Параметры:
-
prefix- префикс. - Возвращает:
-
trueесли последовательность символов, представленная аргументом, является префиксом последовательности символов, представленной этой строкой;falseв противном случае. Обратите также внимание, чтоtrueбудет возвращено, если аргумент является пустой строкой или равен этому объектуString, как определено методомequals(Object). - С:
- 1. 0
endsWith
public boolean endsWith(String suffix)
Проверяет, заканчивается ли эта строка указанным суффиксом.
- Параметры:
-
suffix- суффикс. - Возвращает:
-
trueесли последовательность символов, представленная аргументом, является суффиксом последовательности символов, представленной этим объектом;falseв противном случае. Обратите внимание, что результат будетtrue, если аргумент является пустой строкой или равен этому объектуString, как определено методомequals(Object).
hashCode
public int hashCode()
Возвращает хэш-код для этой строки. Хэш-код для объекта String вычисляется как
s[0]*31^(n-1) + s[1]*31^(n-2) + ... + s[n-1]используя арифметику
int, где s[i] является i-м символом строки, n — длиной строки, а ^ обозначает возведение в степень. (Хэш-значение пустой строки равно нулю.) - Переопределяет:
-
hashCodeв классеObject - Возвращает:
- значение хэш-кода для этого объекта.
- См. также:
-
Object.equals(java.lang.Object),System.identityHashCode(java.lang.Object)
indexOf
public int indexOf(int ch)
Возвращает индекс в этой строке первого вхождения указанного символа. Если символ со значением ch встречается в последовательности символов, представленной этим объектом String, то возвращается индекс (в единицах кода Юникода) первого такого вхождения. Для значений ch в диапазоне от 0 до 0xFFFF (включительно), это наименьшее значение k, для которого:
this.charAt(k) == chявляется истинным. Для других значений
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 >= fromIndex && 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 <= fromIndex && this.startsWith(str, k)Если такого значения k не существует, возвращается
-1. - Параметры:
-
str- подстрока для поиска. -
fromIndex- индекс для начала поиска. - Возвращает:
- индекс последнего вхождения указанной подстроки, ища в обратном порядке от указанного индекса, или
-1если такого вхождения нет.
substring
public String substring(int beginIndex)
Возвращает строку, являющуюся подстрокой этой строки. Подстрока начинается с символа на указанном индексе и продолжается до конца этой строки.
Примеры:
"unhappy".substring(2) returns "happy" "Harbison".substring(3) returns "bison" "emptiness".substring(9) returns "" (an empty string)
- Параметры:
-
beginIndex- начальный индекс, включительно. - Возвращает:
- указанную подстроку.
- Исключение:
-
IndexOutOfBoundsException- еслиbeginIndexотрицательно или больше длины этого объектаString.
substring
public String substring(int beginIndex,
int endIndex) Возвращает строку, являющуюся подстрокой этой строки. Подстрока начинается с указанного beginIndex и продолжается до символа с индексом endIndex - 1. Таким образом, длина подстроки составляет endIndex-beginIndex.
Примеры:
"hamburger".substring(4, 8) returns "urge" "smiles".substring(1, 5) returns "mile"
- Параметры:
-
beginIndex- начальный индекс, включительно. -
endIndex- конечный индекс, исключая. - Возвращает:
- указанную подстроку.
- Исключение:
-
IndexOutOfBoundsException- еслиbeginIndexотрицательно, илиendIndexбольше длины этого объектаString, илиbeginIndexбольшеendIndex.
subSequence
public CharSequence subSequence(int beginIndex,
int endIndex) Возвращает последовательность символов, которая является подпоследовательностью этой последовательности.
Вызов этого метода в виде
str.subSequence(begin, end)ведет себя точно так же, как вызов
str.substring(begin, end)
- Определено в:
-
subSequenceв интерфейсеCharSequence - Примечание API:
- Этот метод определен таким образом, чтобы класс
Stringмог реализовать интерфейсCharSequence. - Параметры:
-
beginIndex- начальный индекс, включительно. -
endIndex- конечный индекс, исключая. - Возвращает:
- указанную подпоследовательность.
- Исключение:
-
IndexOutOfBoundsException- еслиbeginIndexилиendIndexотрицательны, еслиendIndexбольшеlength(), или еслиbeginIndexбольшеendIndex - С:
- 1.4
concat
public String concat(String str)
Объединяет указанную строку в конец этой строки.
Если длина аргументной строки равна 0, то возвращается этот объект String. В противном случае возвращается объект String, представляющий собой последовательность символов, являющуюся конкатенацией последовательности символов, представленной этим объектом String, и последовательности символов, представленной аргументной строкой.
Примеры:
"cares".concat("s") returns "caress"
"to".concat("get").concat("her") returns "together"
- Параметры:
-
str- строка, которая присоединяется к концу этого объектаString. - Возвращает:
- строка, представляющая конкатенацию символов этого объекта и символов аргументной строки.
replace
public String replace(char oldChar,
char newChar) Возвращает строку, полученную путем замены всех вхождений oldChar в этой строке на newChar.
Если символ oldChar не встречается в последовательности символов, представленной этим объектом String, то возвращается ссылка на этот объект String. В противном случае возвращается объект String, представляющий последовательность символов, идентичную последовательности символов, представленной этим объектом String, за исключением того, что каждое вхождение oldChar заменено на вхождение newChar.
Примеры:
"mesquite in your cellar".replace('e', 'o')
returns "mosquito in your collar"
"the war of baronets".replace('r', 'y')
returns "the way of bayonets"
"sparring with a purple porpoise".replace('p', 't')
returns "starring with a turtle tortoise"
"JonL".replace('q', 'x') returns "JonL" (no change)
- Параметры:
-
oldChar- старый символ. -
newChar- новый символ. - Возвращает:
- строка, полученная из этой строки заменой каждого вхождения
oldCharнаnewChar.
matches
public boolean matches(String regex)
Определяет, соответствует ли эта строка заданному регулярному выражению.
Вызов этого метода в виде str.matches(regex) дает точно такой же результат, как выражение
Pattern.matches(regex, str)
- Параметры:
-
regex- регулярное выражение, которому должна соответствовать эта строка - Возвращает:
-
trueтогда и только тогда, когда эта строка соответствует данному регулярному выражению - Исключение:
-
PatternSyntaxException- если синтаксис регулярного выражения некорректен - С:
- 1.4
- См. также:
Pattern
contains
public boolean contains(CharSequence s)
Возвращает true тогда и только тогда, когда эта строка содержит указанную последовательность значений char.
- Параметры:
-
s- последовательность, которую нужно найти - Возвращает:
- true, если эта строка содержит
s, иначе false - С:
- 1.5
replaceFirst
public String replaceFirst(String regex,
String replacement) Заменяет первую подстроку этой строки, которая соответствует данному регулярному выражению, заданной заменой.
Вызов этого метода в виде str.replaceFirst(regex, repl) дает точно такой же результат, как выражение
Pattern.compile(regex).matcher(str).replaceFirst(repl)
Обратите внимание, что обратные слэши (\) и знаки доллара ($) в строке замены могут привести к результатам, отличным от тех, которые были бы получены, если бы она обрабатывалась как строка замены; см. Matcher.replaceFirst(java.lang.String). Используйте Matcher.quoteReplacement(java.lang.String), чтобы подавить специальное значение этих символов, если это необходимо.
- Параметры:
-
regex- регулярное выражение, которому должна соответствовать эта строка -
replacement- строка, которая должна быть заменена на первое совпадение - Возвращает:
- результирующая
String - Исключение:
-
PatternSyntaxException- если синтаксис регулярного выражения некорректен - С:
- 1.4
- См. также:
Pattern
replaceAll
public String replaceAll(String regex,
String replacement) Заменяет каждую подстроку этой строки, которая соответствует данному регулярному выражению, заданной заменой.
Вызов этого метода в виде str.replaceAll(regex, repl) дает точно такой же результат, как выражение
Pattern.compile(regex).matcher(str).replaceAll(repl)
Обратите внимание, что обратные слэши (\) и знаки доллара ($) в строке замены могут привести к результатам, отличным от тех, которые были бы получены, если бы она обрабатывалась как строка замены; см. Matcher.replaceAll. Используйте Matcher.quoteReplacement(java.lang.String), чтобы подавить специальное значение этих символов, если это необходимо.
- Параметры:
-
regex- регулярное выражение, которому должна соответствовать эта строка -
replacement- строка, которая должна быть заменена на каждое совпадение - Возвращает:
- результирующая
String - Исключение:
-
PatternSyntaxException- если синтаксис регулярного выражения некорректен - С:
- 1.4
- См. также:
Pattern
replace
public String replace(CharSequence target,
CharSequence replacement) Заменяет каждую подстроку этой строки, которая соответствует литеральной целевой последовательности, указанной литеральной последовательностью замены. Замена выполняется от начала строки до конца, например, замена "aa" на "b" в строке "aaa" даст "ba", а не "ab".
- Параметры:
-
target- последовательность значений char, которые должны быть заменены -
replacement- последовательность значений char, которая должна быть использована в качестве замены - Возвращает:
- результирующая строка
- С:
- 1.5
split
public String[] split(String regex,
int limit) Разбивает эту строку вокруг совпадений с заданным регулярным выражением.
Массив, возвращаемый этим методом, содержит каждую подстроку этой строки, которая завершается другой подстрокой, соответствующей заданному выражению, или завершается концом строки. Подстроки в массиве упорядочены в том порядке, в котором они встречаются в этой строке. Если выражение не соответствует какой-либо части входных данных, то результирующий массив имеет только один элемент, а именно эту строку.
Когда имеется совпадение положительной ширины в начале этой строки, в начале результирующего массива включается пустая ведущая подстрока. Однако совпадение нулевой ширины в начале никогда не создает такую пустую ведущую подстроку.
Параметр limit управляет количеством применений шаблона и, следовательно, влияет на длину результирующего массива. Если предел n больше нуля, то шаблон будет применяться не более чем n - 1 раз, длина массива не будет больше n, и последний элемент массива будет содержать все входные данные, начиная с последнего совпадения разделителя. Если n не положителен, то шаблон будет применяться столько раз, сколько возможно, и массив может иметь любую длину. Если n равно нулю, то шаблон будет применяться столько раз, сколько возможно, массив может иметь любую длину, и последующие пустые строки будут отброшены.
Строка "boo:and:foo", например, дает следующие результаты с этими параметрами:
| Регулярное выражение | Предел | Результат |
|---|---|---|
| : | 2 | { "boo", "and:foo" } |
| : | 5 | { "boo", "and", "foo" } |
| : | -2 | { "boo", "and", "foo" } |
| o | 5 | { "b", "", ":and:f", "", "" } |
| o | -2 | { "b", "", ":and:f", "", "" } |
| o | 0 | { "b", "", ":and:f" } |
Вызов этого метода в виде str.split(regex, n) дает тот же результат, что и выражение
Pattern.compile(regex).split(str, n)
- Параметры:
-
regex- разделяющее регулярное выражение -
limit- порог результата, как описано выше - Возвращает:
- массив строк, вычисленный путем разделения этой строки вокруг совпадений с заданным регулярным выражением
- Исключение:
-
PatternSyntaxException- если синтаксис регулярного выражения некорректен - С:
- 1.4
- См. также:
Pattern
split
public String[] split(String regex)
Разделяет эту строку вокруг совпадений с заданным регулярным выражением.
Этот метод работает так, как если бы он вызывал метод split с двумя аргументами с заданным выражением и аргументом ограничения 0. Следовательно, завершающие пустые строки не включаются в результирующий массив.
Строка "boo:and:foo", например, дает следующие результаты с этими выражениями:
| Регулярное выражение | Результат |
|---|---|
| : | { "boo", "and", "foo" } |
| o | { "b", "", ":and:f" } |
- Параметры:
-
regex- разделяющее регулярное выражение - Возвращает:
- массив строк, вычисленный путем разделения этой строки вокруг совпадений с заданным регулярным выражением
- Исключение:
-
PatternSyntaxException- если синтаксис регулярного выражения недействителен - С:
- 1.4
- См. также:
Pattern
join
public static String join(CharSequence delimiter,
CharSequence... elements) Возвращает новую строку, составленную из копий CharSequence elements вместе с копией указанного delimiter.
String message = String.join("-", "Java", "is", "cool");
// message returned is: "Java-is-cool" Обратите внимание, что если элемент равен null, то добавляется "null". - Параметры:
-
delimiter- разделитель, разделяющий каждый элемент -
elements- элементы, которые необходимо объединить. - Возвращает:
- новая
String, составленная изelements, разделенныхdelimiter. - Исключение:
-
NullPointerException- Еслиdelimiterилиelementsравныnull - С:
- 1.8
- См. также:
StringJoiner
join
public static String join(CharSequence delimiter,
Iterable<? extends CharSequence> elements) Возвращает новую String, составленную из копий CharSequence elements вместе с копией указанного delimiter.
List<String> strings = new LinkedList<>();
strings.add("Java");strings.add("is");
strings.add("cool");
String message = String.join(" ", strings);
//message returned is: "Java is cool"
Set<String> strings = new LinkedHashSet<>();
strings.add("Java"); strings.add("is");
strings.add("very"); strings.add("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
- См. также:
-
join(CharSequence,CharSequence...),StringJoiner
toLowerCase
public String toLowerCase(Locale locale)
Преобразует все символы в этой String в строчные буквы, используя правила заданного Locale. Преобразование регистра основано на версии стандарта Unicode, указанной классом Character. Поскольку преобразования регистра не всегда являются однозначными соответствиями символов, результирующая String может иметь другую длину по сравнению с исходной String.
Примеры преобразования в нижний регистр в следующей таблице:
| Код языка локали | Заглавные буквы | Строчные буквы | Описание |
|---|---|---|---|
| tr (турецкий) | \u0130 | \u0069 | заглавная буква I с точкой сверху -> строчная буква i |
| tr (турецкий) | \u0049 | \u0131 | заглавная буква I -> строчная буква без точки i |
| (все) | French Fries | french fries | преобразование всех символов в строке в строчные |
| (все) |
|
| преобразование всех символов в строчные |
- Параметры:
-
locale- использование правил преобразования регистра для этой локали - Возвращает:
- строку, преобразованную в нижний регистр.
- С:
- 1.1
- См. также:
-
toLowerCase(),toUpperCase(),toUpperCase(Locale)
toLowerCase
public String toLowerCase()
Преобразует все символы в этой String в строчные буквы, используя правила по умолчанию локали. Это эквивалентно вызову toLowerCase(Locale.getDefault()).
Примечание: Этот метод чувствителен к локали и может давать неожиданные результаты при использовании для строк, которые должны быть интерпретированы независимо от локали. Примерами являются идентификаторы языков программирования, ключи протоколов и теги HTML. Например, "TITLE".toLowerCase() в турецкой локали возвращает "t\u0131tle", где '\u0131' - это символ строчной латинской буквы i без точки. Для получения правильных результатов для строк, нечувствительных к локали, используйте toLowerCase(Locale.ROOT).
- Возвращает:
- строку, преобразованную в нижний регистр.
- См. также:
toLowerCase(Locale)
toUpperCase
public String toUpperCase(Locale locale)
Преобразует все символы в этой String в заглавные буквы, используя правила заданной Locale. Преобразование регистра основано на версии стандарта Unicode, указанной классом Character. Поскольку преобразования регистра не всегда являются однозначными соответствиями символов, результирующая String может иметь другую длину по сравнению с исходной String.
Примеры преобразований регистра, чувствительных к локали, и 1:M соответствия в следующей таблице.
| Код языка локали | Строчные буквы | Заглавные буквы | Описание |
|---|---|---|---|
| tr (турецкий) | \u0069 | \u0130 | строчная буква i -> заглавная буква I с точкой сверху |
| tr (турецкий) | \u0131 | \u0049 | строчная буква без точки i -> заглавная буква I |
| (все) | \u00df | \u0053 \u0053 | строчная буква sharp s -> две буквы: SS |
| (все) | Fahrvergnügen | FAHRVERGNÜGEN |
- Параметры:
-
locale- использование правил преобразования регистра для этой локали - Возвращает:
- строку, преобразованную в верхний регистр.
- С:
- 1.1
- См. также:
-
toUpperCase(),toLowerCase(),toLowerCase(Locale)
toUpperCase
public String toUpperCase()
Преобразует все символы в этой String в заглавные буквы, используя правила по умолчанию локали. Этот метод эквивалентен toUpperCase(Locale.getDefault()).
Примечание: Этот метод чувствителен к локали и может давать неожиданные результаты при использовании для строк, которые должны быть интерпретированы независимо от локали. Примерами являются идентификаторы языков программирования, ключи протоколов и теги HTML. Например, "title".toUpperCase() в турецкой локали возвращает "T\u0130TLE", где '\u0130' - это символ заглавной латинской буквы I с точкой сверху. Для получения правильных результатов для строк, нечувствительных к локали, используйте toUpperCase(Locale.ROOT).
- Возвращает:
- строку, преобразованную в верхний регистр.
- См. также:
toUpperCase(Locale)
trim
public String trim()
Возвращает строку, значением которой является эта строка, с удаленными любыми начальными и завершающими пробелами.
Если этот String объект представляет пустую последовательность символов или первый и последний символы последовательности символов, представленной этим String объектом, оба имеют коды, большие, чем '\u0020' (пробел), возвращается ссылка на этот String объект.
В противном случае, если в строке нет символа с кодом, большим, чем '\u0020', возвращается String объект, представляющий пустую строку.
В противном случае, пусть k - индекс первого символа в строке, чей код больше, чем '\u0020', и пусть m - индекс последнего символа в строке, чей код больше, чем '\u0020'. Возвращается String объект, представляющий подстроку этой строки, которая начинается с символа с индексом k и заканчивается символом с индексом m - то есть результат this.substring(k, m + 1).
Этот метод может использоваться для удаления пробелов (как определено выше) из начала и конца строки.
- Возвращает:
- Строка, значением которой является эта строка, с удаленными любыми начальными и завершающими пробелами, или эта строка, если у нее нет начальных или завершающих пробелов.
toString
public String toString()
Возвращается сам этот объект (который уже является строкой!).
- Указано:
-
toStringв интерфейсеCharSequence - Переопределяет:
-
toStringв классеObject - Возвращает:
- сам строковый объект.
toCharArray
public char[] toCharArray()
Преобразует эту строку в новый массив символов.
- Возвращает:
- новый выделенный массив символов, длина которого равна длине этой строки, и чьё содержимое инициализировано последовательностью символов, представленных этой строкой.
format
public static String format(String format,
Object... args) Возвращает отформатированную строку, используя указанную строку формата и аргументы.
Используемый язык всегда — тот, который возвращается методом Locale.getDefault().
- Параметры:
-
format— строка формата -
args— Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Количество аргументов может быть переменным и равным нулю. Максимальное количество аргументов ограничено максимальным размером массива в Java, как определено в Спецификации виртуальной машины Java. Поведение с аргументомnullзависит от преобразования. - Возвращает:
- Отформатированная строка
- Исключения:
-
IllegalFormatException— Если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с заданными аргументами, недостаточное количество аргументов для строки формата или другие недопустимые условия. Для описания всех возможных ошибок форматирования см. раздел Детали спецификации класса formatter. - С:
- 1.5
- См. также:
Formatter
format
public static String format(Locale l,
String format,
Object... args) Возвращает отформатированную строку, используя указанный язык, строку формата и аргументы.
- Параметры:
-
l— Язык, используемый во время форматирования. Еслиlравенnull, локальные настройки не применяются. -
format— строка формата -
args— Аргументы, на которые ссылаются спецификаторы формата в строке формата. Если аргументов больше, чем спецификаторов формата, лишние аргументы игнорируются. Количество аргументов может быть переменным и равным нулю. Максимальное количество аргументов ограничено максимальным размером массива в Java, как определено в Спецификации виртуальной машины Java. Поведение с аргументомnullзависит от преобразования. - Возвращает:
- Отформатированная строка
- Исключения:
-
IllegalFormatException— Если строка формата содержит недопустимый синтаксис, спецификатор формата, несовместимый с заданными аргументами, недостаточное количество аргументов для строки формата или другие недопустимые условия. Для описания всех возможных ошибок форматирования см. раздел Детали спецификации класса formatter - С:
- 1.5
- См. также:
Formatter
valueOf
public static String valueOf(Object obj)
Возвращает строковое представление аргумента Object.
- Параметры:
-
obj— объектObject. - Возвращает:
- Если аргумент равен
null, возвращается строка, равная"null"; в противном случае возвращается значениеobj.toString(). - См. также:
Object.toString()
valueOf
public static String valueOf(char[] data)
Возвращает строковое представление аргумента — массива символов char. Содержимое массива символов копируется; последующие изменения массива символов не влияют на возвращаемую строку.
- Параметры:
-
data— массив символов. - Возвращает:
- строка, содержащая символы массива символов.
valueOf
public static String valueOf(char[] data,
int offset,
int count) Возвращает строковое представление определенного подмассива аргумента — массива символов char.
Аргумент offset — индекс первого символа подмассива. Аргумент count задает длину подмассива. Содержимое подмассива копируется; последующие изменения массива символов не влияют на возвращаемую строку.
- Параметры:
-
data— массив символов. -
offset— начальный индекс подмассива. -
count— длина подмассива. - Возвращает:
- строка, содержащая символы указанного подмассива массива символов.
- Исключения:
-
IndexOutOfBoundsException— еслиoffsetотрицательно, илиcountотрицательно, илиoffset+countбольше, чемdata.length.
copyValueOf
public static String copyValueOf(char[] data,
int offset,
int count) Эквивалентно valueOf(char[], int, int).
- Параметры:
-
data— массив символов. -
offset— начальный индекс подмассива. -
count— длина подмассива. - Возвращает:
- строка, содержащая символы указанного подмассива массива символов.
- Исключения:
-
IndexOutOfBoundsException— еслиoffsetотрицательно, илиcountотрицательно, илиoffset+countбольше, чемdata.length.
copyValueOf
public static String copyValueOf(char[] data)
Эквивалентно valueOf(char[]).
- Параметры:
-
data— массив символов. - Возвращает:
- строка, содержащая символы массива символов.
valueOf
public static String valueOf(boolean b)
Возвращает строковое представление аргумента boolean.
- Параметры:
-
b— значениеboolean. - Возвращает:
- Если аргумент
true, возвращается строка, равная"true"; в противном случае, возвращается строка, равная"false".
valueOf
public static String valueOf(char c)
Возвращает строковое представление аргумента — символа char.
- Параметры:
-
c— символchar. - Возвращает:
- строка длиной
1, содержащая один символ — переданный аргументc.
valueOf
public static String valueOf(int i)
Возвращает строковое представление аргумента — целого числа int.
Представление точно такое же, как возвращает метод Integer.toString с одним аргументом.
- Параметры:
-
i— целое числоint. - Возвращает:
- строковое представление аргумента
int. - См. также:
Integer.toString(int, int)
valueOf
public static String valueOf(long l)
Возвращает строковое представление аргумента — длинного целого числа long.
Представление точно такое же, как возвращает метод Long.toString с одним аргументом.
- Параметры:
-
l— длинное целое числоlong. - Возвращает:
- строковое представление аргумента
long. - См. также:
Long.toString(long)
valueOf
public static String valueOf(float f)
Возвращает строковое представление аргумента — числа с плавающей точкой float.
Представление точно такое же, как возвращает метод Float.toString с одним аргументом.
- Параметры:
-
f— число с плавающей точкойfloat. - Возвращает:
- строковое представление аргумента
float. - См. также:
Float.toString(float)
valueOf
public static String valueOf(double d)
Возвращает строковое представление аргумента — вещественного числа double.
Представление точно такое же, как возвращает метод Double.toString с одним аргументом.
- Параметры:
-
d— вещественное числоdouble. - Возвращает:
- строковое представление аргумента
double. - См. также:
Double.toString(double)
intern
public String intern()
Возвращает каноническое представление объекта строки.
Класс String поддерживает пул строк, который изначально пуст.
При вызове метода intern, если пул уже содержит строку, равную этому объекту строки, как определено методом equals(Object), то возвращается строка из пула. В противном случае, этот объект строки добавляется в пул, и возвращается ссылка на этот объект.
Следовательно, для любых двух строк s и t, s.intern() == t.intern() равно true, если и только если s.equals(t) равно true.
Все литералы строк и строковые константные выражения интернируются. Литералы строк определены в разделе 3.10.5 спецификации Спецификации языка Java.
- Возвращает:
- строка, содержащая то же содержимое, что и эта строка, но гарантированно взятая из пула уникальных строк.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.