Строка в Java представляет собой неизменяемую последовательность символов и не может быть изменена после создания. Строки имеют тип java.lang.String class. На этой странице мы узнаем о создании строк с помощью строковых литералов и конструкторов, строковых методов и различных других примеров, связанных с преобразованием и форматированием строк.
1. Создание новой строки
В Java существует два способа создания строки.
1.1. Строковый литерал
Строковые литералы — самый простой и рекомендуемый способ создания строк в Java. Таким образом, просто присвойте символы в двойных кавычках переменной типа java.lang.String.
Строковые литералы всегда создаются в пуле строковых констант из соображений производительности.
String blogName = "howtodoinjava.com";String welcomeMessage = "Hello World !!";
1.2.Строковый объект
Иногда нам может понадобиться создать отдельные экземпляры для каждой отдельной строки в памяти. Мы можем создать один строковый объект для каждого строкового значения, используя ключевое слово new. Строковые объекты, созданные с использованием ключевого слова new, хранятся в динамической памяти.
В следующем примере в куче памяти будет 3 отдельных экземпляра строки с одинаковым значением.
String blogName1 = new String("howtodoinjava.com");String blogName2 = new String("howtodoinjava.com");String blogName3 = new String("howtodoinjava.com");
2. Строковые методы
- char charAt(int index) – Возвращает символ по указанному индексу. Указанное значение индекса должно быть в диапазоне от '0' до 'length() -1' включительно. Выдает IndexOutOfBoundsException, если индекс недействителен или находится вне диапазона.
- boolean equals(Object obj) – сравнивает строку с указанной строкой и возвращает true, если обе строки совпадают, в противном случае false.
- boolean equalsIgnoreCase(String string) – Сравнивает так же, как метод equals, но без учета регистра.
- int compareTo(String string) – Сравнивает две строки лексикографически на основе значения Unicode каждого символа в строках. Вы можете считать это сравнением на основе словаря. Возвращаемое значение равно 0, если строка аргумента равна этой строке; значение меньше 0, если эта строка лексикографически меньше аргумента строки, и значение больше 0, если эта строка лексикографически больше аргумента строки.
- int compareToIgnoreCase(String string) – то же, что и метод CompareTo, однако он игнорирует регистр во время сравнения.
- boolean startsWith(String prefix, int offset) – проверяет, имеет ли строка указанный префикс или нет – начиная с указанного индекса смещения.
- boolean startsWith(String prefix) – Проверяет, имеет ли строка указанный префикс, если да, то возвращает true, иначе false. Значение индекса смещения равно 0 в этом перегруженном методе.
- boolean endsWith(String suffix) – проверяет, заканчивается ли строка указанным суффиксом.
- int hashCode() – Возвращает хеш-код строки.
- int indexOf(int ch) – возвращает индекс первого вхождения указанного символьного аргумента в строку.
- int indexOf(int ch, int fromIndex) – перегруженная версия метода indexOf(char ch), однако она начинает поиск в строке с указанного fromIndex.
- int indexOf(String str) – возвращает индекс первого вхождения указанной подстроки 'str'.
- int indexOf(String str, int fromIndex) – перегруженная версия метода indexOf(String str), однако она начинает поиск в строке с указанного fromIndex.
- int lastIndexOf(int ch) – Возвращает последнее вхождение символа «ch» в строке.
- int lastIndexOf(int ch, int fromIndex) – Перегруженная версия метода lastIndexOf(int ch). Начинает поиск в обратном направлении, начиная с fromIndex.
- int lastIndexOf(String str) – Возвращает индекс последнего вхождения строки 'str'. Аналогично lastIndexOf(int ch).
- int lastIndexOf(String str, int fromIndex) – Перегруженная версия метода lastIndexOf(String str). Начинает поиск в обратном направлении, начиная с fromIndex.
- String substring(int beginIndex) – Возвращает подстроку строки. Подстрока начинается с символа по указанному индексу.
- String substring(int beginIndex, int endIndex) – Возвращает подстроку. Подстрока начинается с символа в beginIndex и заканчивается символом в endIndex.
- String concat(String str) – объединяет указанный строковый аргумент в конце строки.
- String replace(char oldChar, char newChar) – возвращает новую обновленную строку после замены всех вхождений oldChar аргументами newChar.
- String replace(String target, String replacement) – возвращает новую обновленную строку после замены всех вхождений target аргументом replacement.
- String replaceFirst(String regex, String replacement) – заменяет первое вхождение подстроки, соответствующей заданному аргументу регулярного выражения, на указанную строку замены.
- String replaceAll(String regex, String replacement) – заменяет все вхождения подстрок, соответствующих аргументу регулярного выражения, на заменяющую строку.
- String[] split(String regex, int limit) – разбивает строку и возвращает массив подстрок, соответствующих заданному регулярному выражению. «limit» — максимальное количество элементов в массиве.
- String[] split(String regex) – Перегрузка предыдущего метода без какого-либо порогового ограничения.
- boolean contains(CharSequence s) – Проверяет, содержит ли строка указанную последовательность значений char. Если да, то возвращает true, иначе false. Выдает NullPointerException, если аргумент равен null.
- String toUpperCase(Locale locale) – преобразует строку в строку с заглавными буквами, используя правила, определенные в указанной локали.
- String toUpperCase() – перегруженная версия предыдущего метода toUpperCase() с локалью по умолчанию.
- String toLowerCase(Locale locale) – преобразует строку в строку с нижним регистром, используя правила, определенные заданной локалью.
- String toLowerCase() – Перегруженная версия предыдущего метода с локалью по умолчанию.
- String intern() – ищет указанную строку в пуле памяти и возвращает ссылку, если она найдена. В противном случае этот метод выделяет создает строковый литерал в пуле строк и возвращает ссылку.
- boolean isEmpty() – возвращает true, если заданная строка имеет нулевую длину, в противном случае возвращает false.
- static String join() – объединяет заданные строки с использованием указанного разделителя и возвращает объединенный литерал Java String.
- static String format() – возвращает отформатированную строку.
- String trim() – удаляет начальные и конечные пробелы из строки Java.
- char[] toCharArray() – Преобразует строку в массив символов.
- static String copyValueOf(char[] data) – возвращает строку, содержащую символы указанного массива символов.
- byte[] getBytes(String charsetName) – преобразует строку в последовательность байтов, используя указанную кодировку charset.
- byte[] getBytes() – Перегруженная версия предыдущего метода. Использует кодировку charset по умолчанию.
- int length() – Возвращает длину строки.
- boolean matches(String regex) – проверяет, соответствует ли строка указанному аргументу регулярного выражения.
- int codePointAt(int index) – похож на метод charAt(). Он возвращает значение кодовой точки Unicode указанного индекса, а не сам символ.
- static String copyValueOf(char[] data, int offset, int count) – Перегруженная версия предыдущего метода с двумя дополнительными аргументами – начальным смещением подмассива и длиной подмассива. Он выбирает символы из массива на основе дополнительных аргументов, а затем создает строку.
- void getChars(int srcBegin, int srcEnd, char[] dest, int destBegin) – Копирует символы массива src в массив dest. Копируется только указанный диапазон(от srcBegin до srcEnd) в подмассив dest(начиная сdestBegin).
- static String valueOf() – возвращает строковое представление переданных аргументов, таких как int, long, float, double, char и char array.
- boolean contentEquals(StringBuffer sb) – сравнивает строку с указанным строковым буфером.
- boolean regionMatches() – сравнивает подстроку входных данных с подстрокой указанной строки.
- boolean regionMatches() – еще одна вариация метода regionMatches с дополнительным логическим аргументом, указывающим, является ли сравнение чувствительным к регистру или нет.
3. Конверсии
- Преобразовать строку Java в целое число
- Преобразование int в строку в Java
- Преобразовать строку в длинную
- Преобразование Long в String в Java
- Преобразовать строку в дату
- Преобразовать дату в строку
- Пример преобразования строки в строку[]
- Java 8 – Объединение массива строк – Преобразование массива в строку
- Пример преобразования строки в InputStream
- Пример преобразования InputStream в строку
- Разделение строки CSV Java – пример преобразования строки в список
- Присоединить CSV к строке
- Пример преобразования HTML в строку
- Escape HTML – Пример кодирования строки в HTML
- Преобразовать массив байтов в строку
- Преобразование StackTrace в строку
- Преобразовать число с плавающей точкой в строку – Форматировать до N десятичных знаков
4. Полезные примеры
- Перевернуть строку в Java с помощью рекурсии
- Удалить лишние пробелы между словами
- Удалить только начальные пробелы строки
- Удалить только конечные пробелы в строке
- Как перевернуть строку в Java
- Переставить слова в строке в Java
- Перевернуть строку в Java с помощью рекурсии
- Как найти повторяющиеся слова в строке
- Как найти повторяющиеся символы в строке
- Сортировка символов строки Java по алфавиту
- Преобразовать строку в заглавные буквы
- 4 способа разделить строку
- Выравнивание строки по левому, правому краю или по центру
- Прочитать файл в строку
- Пример StringJoiner для Java 8
- Дополнить строку слева пробелами или нулями
- Дополнить строку пробелами или нулями справа
- Получить первые 4 символа строки
- Получить последние 4 символа строки
- Маскировать строку, за исключением последних 4 символов
- Форматировать строку в шаблон(123) 456-7890
- Удаление последнего символа из строки