Учебник по строкам Java

Строка в 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. Конверсии

4. Полезные примеры

5. Часто задаваемые вопросы

Прокрутить вверх