Строки – представляют собой последовательность символов. Строки в Java широко используются и являются объектами.

Платформа Java предоставляет класс строк (class String) для создания и работы со строками.

Создание строк

Наиболее простой способ создать строку:

String greeting = "Здравствуй, мир!";

После каждого раза, когда компилятор встречает строковый литерал в коде, он создает строковый объект (String) со значение, в данном случае «Здравствуй, мир!».

Как и в случае с другими объектами, можно создавать строковые объекты, используя ключевое слово new и конструктор. Класс строк имеет одиннадцать конструкторов, которые позволяют обеспечить начальное значение строки, используя различные источники, таких как массив символов.

Пример

public class Test {

   public static void main(String args[]){
      char[] helloArray = { 'П', 'р', 'и', 'в', 'е', 'т', '.'};
      String helloString = new String(helloArray);  
      System.out.println(helloString);
   }
}

Получим следующий результат:

Привет.

Примечание: Класс строк является неизменяемым, так что как только он будет создан, строковый объект не может быть изменен. Если есть необходимость сделать много изменений в строке символов, следует использовать классы строки буфера (String Buffer) и построитель строки (String Builder Classes).

Длина строки

Методы, используемые для получения информации об объекте, известны как методы доступа. Один из методов доступа, который можно использовать со строками является метод length(), он возвращает количество символов, содержащихся в строковом объекте.

Ниже представлен пример метода length(), который поможет определить длину строки.

Пример

public class Test {

   public static void main(String args[]) {
      String s = "Я стану отличным программистом!";
      int len = s.length();
      
      System.out.println( "Длина строки: " + len + " символ.");
   }
}

Получим следующий результат:

Длина строки: 31 символ.

Объединение строк в Java

Класс строк включает метод для объединения двух строк:

string1.concat(string2);

Возвращает новую строку string1, с добавленной строкой string2 в конце. Вы также можете использовать метод concat() со строковыми литералами:

"Меня зовут ".concat("Олег");

Чаще строки объединяют оператором +:

"Здравствуй," + " мир" + "!"

Что приводит к:

Здравствуй мир!

Давайте посмотрим на следующем примере.

Пример

public class Test {

   public static void main(String args[]) {
      String string1 = "отличным ";
      System.out.println("Я стану " + string1 + "программистом!");
   }
}

Получим следующий результат:

Я стану отличным программистом! 

Создание формата строк

Мы уже изучали методы printf() и format() для вывода на печать с отформатированными числами. Класс строк в Java обладает эквивалентным методом format(), который возвращает строковый объект, а не потоковый объект (PrintStream).

Использование строкового статического метода format() позволяет создавать строку нужного формата, который можно использовать повторно, в отличие от одноразовых операторов print. Например вместо:

System.out.printf("Значение переменной float = " +
                   "%f, пока значение integer " +
                   "переменная = %d, и string " +
                   "= %s", floatVar, intVar, stringVar);

Вы также можете написать:

String fs;
fs = String.format("Значение переменной float = " +
                   "%f, пока значение integer " +
                   "переменная = %d, и string " +
                   "= %s", floatVar, intVar, stringVar);
System.out.println(fs);

Методы класса строк

Ниже приведен список методов, поддерживаемых классом строк.

Методы с описанием
1char charAt(int index)
Возвращает символ по указанному индексу.
2int compareTo(Object o)
Сравнивает данную строку с другим объектом.
3int compareTo(String anotherString)
Сравнивает две строки лексически.
4int compareToIgnoreCase(String str)
Сравнивает две строки лексически, игнорируя регистр букв.
5String concat(String str)
Объединяет указанную строку с данной строкой, путем добавления ее в конце.
6boolean contentEquals(StringBuffer sb)
Возвращает значение true только в том случае, если эта строка представляет собой ту же последовательность символов как указанно в буфере строки (StringBuffer).
7static String copyValueOf(char[] data)
Возвращает строку, которая представляет собой последовательность символов, в указанный массив.
8static String copyValueOf(char[] data, int offset, int count)
Возвращает строку, которая представляет собой последовательность символов, в указанный массив.
9boolean endsWith(String suffix)
Проверяет заканчивается ли эта строка указанным окончанием.
10boolean equals(Object anObject)
Сравнивает данную строку с указанным объектом.
11boolean equalsIgnoreCase(String anotherString)
Сравнивает данную строку с другой строкой, игнорируя регистр букв.
12byte getBytes()
Кодирует эту строку в последовательность байтов с помощью платформы charset, сохраняя результат в новый массив байтов.
13byte[] getBytes(String charsetName
Кодирует эту строку в последовательность байтов с помощью платформы charset, сохраняя результат в новый массив байтов.
14void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
Копирует символы из этой строки в массив символов назначения.
15int hashCode()
Возвращает хэш-код для этой строки.
16int indexOf(int ch)
Возвращает индекс первого вхождения указанного символа в данной строке.
17int indexOf(int ch, int fromIndex)
Возвращает индекс первого вхождения указанного символа в данной строке, начиная поиск с указанного индекса.
18int indexOf(String str)
Возвращает индекс первого вхождения указанной подстроки в данной строке.
19int indexOf(String str, int fromIndex)
Возвращает индекс первого вхождения указанной подстроки в данной строке, начиная с указанного индекса.
20String intern()
Возвращает каноническое представление для строкового объекта.
21int lastIndexOf(int ch)
Возвращает индекс последнего вхождения указанного символа в этой строке.
22int lastIndexOf(int ch, int fromIndex)
Возвращает индекс последнего вхождения указанного символа в этой строке, начиная обратный поиск с указанного индекса.
23int lastIndexOf(String str)
Возвращает индекс последнего вхождения указанной подстроки в данной строке.
24int lastIndexOf(String str, int fromIndex)
Возвращает индекс последнего вхождения указанной подстроки в этой строке, начиная обратный поиск с указанного индекса.
25int length()
Возвращает длину строки.
26boolean matches(String regex)
Сообщает, соответствует ли или нет эта строка заданному регулярному выражению.
27boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
Проверяет равны ли две области строки.
28boolean regionMatches(int toffset, String other, int ooffset, int len)
Проверяет равны ли две области строки.
29String replace(char oldChar, char newChar)
Возвращает новую строку, в результате, заменив все вхождения oldChar в этой строке на newChar.
30String replaceAll(String regex, String replacement)
Заменяет каждую подстроку строки, соответствующей заданному регулярному выражению с данной заменой.
31String replaceFirst(String regex, String replacement)
Заменяет первые подстроки данной строки, которая соответствует заданному регулярному выражению с данной заменой.
32String[] split(String regex)
Разделяет эту строку, окружая данным регулярным выражением.
33String[] split(String regex, int limit)
Разделяет эту строку, окружая данным регулярным выражением.
34boolean startsWith(String prefix)
Проверяет, начинается ли эта строка с заданного префикса.
35boolean startsWith(String prefix, int toffset)
Проверяет, начинается ли эта строка с указанного префикса, начиная с указанного индекса.
36CharSequence subSequence(int beginIndex, int endIndex)
Возвращает новую последовательность символов, которая является подпоследовательностью этой последовательности.
37String substring(int beginIndex)
Возвращает новую строку, которая является подстрокой данной строки.
38String substring(int beginIndex, int endIndex)
Возвращает новую строку, которая является подстрокой данной строки.
39char[] toCharArray()
Преобразует эту строку в новый массив символов.
40String toLowerCase()
Преобразует все символы в данной строке в нижний регистр, используя правила данного языкового стандарта.
41String toLowerCase(Locale locale)
Преобразует все знаки в данной строке в нижний регистр, используя правила данного языкового стандарта.
42String toString()
Этот объект (который уже является строкой!) возвращает себя.
43String toUpperCase()
Преобразует все символы в строке в верхний регистр, используя правила данного языкового стандарта.
44String toUpperCase(Locale locale)
Преобразует все символы в строке в верхний регистр, используя правила данного языкового стандарта.
45String trim()
Возвращает копию строки с пропущенными начальными и конечными пробелами.
46static String valueOf(primitive data type x)
Возвращает строковое представление переданного типа данных аргумента.

Оглавление