Класс String в Java
Строки широко используются в программировании на Java. В Java строки являются объектами. Java предоставляет класс String для создания строк и работы с ними.
Создание строк
Простейший способ создания строки выглядит так:
Когда в коде встречается строковая константа, её значение здесь — "Example", компилятор использует это значение для создания объекта String.
Как и другие объекты, вы можете использовать ключевое слово и методы-конструкторы для создания объектов String.
Создание строк с помощью конструкторов:
Строки, созданные с помощью String, хранятся в общем пуле, а строковые объекты, созданные с помощью new, находятся в куче:

Класс String имеет 11 конструкторов. Эти методы предоставляют различные параметры для инициализации строк, например, предоставляя параметр в виде массива символов:
Код файла StringDemo.java:
Результат компиляции и выполнения вышеприведённого примера следующий:
example
Примечание:Класс String является неизменяемым, поэтому после создания объекта String его значение нельзя изменить (подробности см. в анализе в разделе примечаний).
Если вам нужно внести много изменений в строку, следует использовать классыStringBuffer & StringBuilder。
Длина String
Методы, используемые для получения информации об объекте, называются методами доступа.
Методом доступа класса String является метод length(), который возвращает количество символов, содержащихся в объекте строки.
После выполнения следующего кода переменная len равна 14:
Код файла StringDemo.java:
Результат компиляции и выполнения вышеприведённого примера следующий:
Example网址长度 : 14
Конкатенация строк
Класс String предоставляет метод для конкатенации двух строк:
Возвращает новую строку, которая является результатом конкатенации string2 со string1. Вы также можете использовать метод concat() для строковых литералов, например:
"我的名字是 ".concat("Example");
Чаще всего для конкатенации строк используется оператор '+', например:
"Hello," + " example" + "!"
Результат следующий:
"Hello, example!"
Вот пример:
Код файла StringDemo.java:
Результат компиляции и выполнения вышеприведённого примера следующий:
1、Example网址:www.example.com
Создание форматированных строк
Мы знаем, что методы printf() и format() можно использовать для форматированного вывода чисел.
Класс String использует статический метод format() для возврата объекта String, а не объекта PrintStream.
Статический метод format() класса String можно использовать для создания переиспользуемых форматированных строк, а не только для однократного вывода на печать.
Как показано ниже:
Вы также можете написать это так
Методы String
Ниже перечислены методы, поддерживаемые классом String. Для получения более подробной информации см.Java String APIдокументацию:
| SN (Серийный номер) | Описание метода |
|---|---|
| 1 |
char charAt(int index) Возвращает значение char по указанному индексу. |
| 2 |
int compareTo(Object o) Сравнивает эту строку с другим объектом. |
| 3 |
int compareTo(String anotherString) Сравнивает две строки лексикографически. |
| 4 |
int compareToIgnoreCase(String str) Сравнивает две строки лексикографически, игнорируя регистр. |
| 5 |
String concat(String str) Присоединяет указанную строку к концу этой строки. |
| 6 |
boolean contentEquals(StringBuffer sb) Возвращает true тогда и только тогда, когда эта строка имеет ту же последовательность символов, что и указанный StringBuffer. |
| 7 |
static String copyValueOf(char[] data) Возвращает String, представляющую последовательность символов в указанном массиве. |
| 8 |
static String copyValueOf(char[] data, int offset, int count) Возвращает String, представляющую последовательность символов в указанном массиве. |
| 9 |
boolean endsWith(String suffix) Проверяет, заканчивается ли эта строка указанным суффиксом. |
| 10 |
boolean equals(Object anObject) Сравнивает эту строку с указанным объектом. |
| 11 |
boolean equalsIgnoreCase(String anotherString) Сравнивает этот String с другим String, игнорируя регистр. |
| 12 |
byte[] getBytes() Кодирует этот String в последовательность байтов, используя кодировку по умолчанию платформы, и сохраняет результат в новый массив байтов. |
| 13 |
byte[] getBytes(String charsetName) Кодирует этот String в последовательность байтов, используя указанную кодировку, и сохраняет результат в новый массив байтов. |
| 14 |
void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) Копирует символы из этой строки в массив символов назначения. |
| 15 |
int hashCode() Возвращает хеш-код этой строки. |
| 16 |
int indexOf(int ch) Возвращает индекс первого вхождения указанного символа в этой строке. |
| 17 |
int indexOf(int ch, int fromIndex) Возвращает индекс первого вхождения указанного символа в этой строке, начиная поиск с указанного индекса. |
| 18 |
int indexOf(String str) Возвращает индекс первого вхождения указанной подстроки в этой строке. |
| 19 |
int indexOf(String str, int fromIndex) Возвращает индекс первого вхождения указанной подстроки в этой строке, начиная с указанного индекса. |
| 20 |
String intern() Возвращает каноническое представление строкового объекта. |
| 21 |
int lastIndexOf(int ch) Возвращает индекс последнего вхождения указанного символа в этой строке. |
| 22 |
int lastIndexOf(int ch, int fromIndex) Возвращает индекс последнего вхождения указанного символа в этой строке, выполняя поиск в обратном направлении от указанного индекса. |
| 23 |
int lastIndexOf(String str) Возвращает индекс самого правого вхождения указанной подстроки в этой строке. |
| 24 |
int lastIndexOf(String str, int fromIndex) Возвращает индекс последнего вхождения указанной подстроки в этой строке, выполняя поиск в обратном направлении от указанного индекса. |
| 25 |
int length() Возвращает длину этой строки. |
| 26 |
boolean matches(String regex) Сообщает, соответствует ли эта строка заданному регулярному выражению. |
| 27 |
boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len) Проверяет, равны ли две области строки. |
| 28 |
boolean regionMatches(int toffset, String other, int ooffset, int len) Проверяет, равны ли две области строки. |
| 29 |
String replace(char oldChar, char newChar) Возвращает новую строку, полученную заменой всех вхождений oldChar в этой строке на newChar. |
| 30 |
String replaceAll(String regex, String replacement) Заменяет каждую подстроку этой строки, соответствующую заданному регулярному выражению, на заданную замену. |
| 31 |
String replaceFirst(String regex, String replacement) Заменяет первую подстроку этой строки, соответствующую заданному регулярному выражению, на заданную замену. |
| 32 |
String[] split(String regex) Разделяет эту строку вокруг совпадений с заданным регулярным выражением. |
| 33 |
String[] split(String regex, int limit) Разделяет эту строку вокруг совпадений с заданным регулярным выражением. |
| 34 |
boolean startsWith(String prefix) Проверяет, начинается ли эта строка с указанного префикса. |
| 35 |
boolean startsWith(String prefix, int toffset) Проверяет, начинается ли подстрока этой строки с указанного индекса с заданным префиксом. |
| 36 |
CharSequence subSequence(int beginIndex, int endIndex) Возвращает новую последовательность символов, которая является подпоследовательностью данной последовательности. |
| 37 |
String substring(int beginIndex) Возвращает новую строку, являющуюся подстрокой этой строки. |
| 38 |
String substring(int beginIndex, int endIndex) Возвращает новую строку, являющуюся подстрокой этой строки. |
| 39 |
char[] toCharArray() Преобразует эту строку в новый массив символов. |
| 40 |
String toLowerCase() Преобразует все символы в этой строке в нижний регистр, используя правила локали по умолчанию. |
| 41 |
String toLowerCase(Locale locale) Преобразует все символы в этой строке в нижний регистр, используя правила заданной локали. |
| 42 |
String toString() Возвращает сам объект (он уже является строкой!). |
| 43 |
String toUpperCase() Преобразует все символы в этой String в верхний регистр, используя правила локали по умолчанию. |
| 44 |
String toUpperCase(Locale locale) Преобразует все символы в этой String в верхний регистр, используя правила заданного Locale. |
| 45 |
String trim() Возвращает копию строки, игнорируя начальные и конечные пробельные символы. |
| 46 |
static String valueOf(primitive data type x) Возвращает строковое представление параметра x заданного типа данных. |
| 47 |
contains(CharSequence chars) Определяет, содержит ли она указанную последовательность символов. |
| 48 |
isEmpty() Определяет, является ли строка пустой. |