String
package java.lang.String @since 1.0
implements java.io.Serializable, Comparable<String>, CharSequence
Класс String объявлен как final, поэтому наследоваться от него не получится.
Поскольку строки неизменны, их хэшкод кэшируется в момент создания, и не требует повторного пересчета. Это делает строки отличным кандидатом для ключа в Map и они обрабатываются быстрее, чем другие объекты-ключи HashMap. Вот почему строки преимущественно используются в качестве ключей HashMap.
Следует помнить, что объекты класса String являются неизменяемыми (immutable). Поэтому, когда вам кажется, что вы меняете строку, то на самом деле вы создаёте новую строку.
В Java есть специальные классы StringBuffer и StringBuilder, который допускают изменения в строке.
Классы String, StringBuffer, StringBuilder определены в пакете java.lang и доступны автоматически без объявления импорта. Все три класса реализуют интерфейс CharSequence.
java.lang.StringBuffer @since 1.0java.lang.StringBuilder @since 1.5
Какая основная разница между String, StringBuffer, StringBuilder?
String - неизменяемый класс, тоесть для для добавление данных в уже существующую строку, создается новый объект строки.
StringBuffer - синхронизированный
StringBuilder - нет.
Это их единственное различие.
Методы :
- boolean *.equals(Object obj) - Сравнивает содержимое строк .
- int *.length() - Возращает длинну строки .
- char *.charAt(int index) - Вернуть букву по её индексу.
- boolean *.contains(CharSequence s) - Определяет, содержит ли строка последовательность символов.
- String[] *.split(String regex) - разбить строку по регулярному выражению .
- String *.substring(int beginIndex, int endIndex) - Вернуть подстроку из строки по индексам.
- boolean *.matches(String regex) - Указывает, соответствует ли эта строка данному регулярному выражению.
- String *.equalsIgnoreCase(String str) - Сравнивает содержимое строк игнорируя регистр букв.
- String *.toUpperCase() - Переводит все буквы в строке в верхний регистр и возвращает новую строку.
- String *.toLowerCase() - Переводит все буквы в строке в нижний регистр и возвращает новую строку.
- String *.trim() - Возвращает строку, значение которой является этой строкой, с удалением всех пробельных символов.
- String *.replace(char oldChar, char newChar) - Возвращает строку, полученную в результате замены всех вхождений oldChar в этой строке с помощью newChar.
- String *.replaceAll(String regex, String replacement) - Заменяет каждую подстроку этой строки, которая соответствует данному регулярному выражению с указанной заменой.
- byte[] *.getBytes() - Вернуть байтовое представление строки
- String *.intern() - отправить строку в пулл строк .
- String reverse = new StringBuffer(string).reverse().toString(); - перевернуть строку .
- String reverse = new StringBuilder(string).reverse().toString(); - перевернуть строку .