Строки – представляют собой последовательность символов. Строки в 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);
Методы класса строк
Ниже приведен список методов, поддерживаемых классом строк.
№ | Методы с описанием |
1 | char charAt(int index) Возвращает символ по указанному индексу. |
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) Возвращает строку, которая представляет собой последовательность символов, в указанный массив. |
8 | static String copyValueOf(char[] data, int offset, int count) Возвращает строку, которая представляет собой последовательность символов, в указанный массив. |
9 | boolean endsWith(String suffix) Проверяет заканчивается ли эта строка указанным окончанием. |
10 | boolean equals(Object anObject) Сравнивает данную строку с указанным объектом. |
11 | boolean equalsIgnoreCase(String anotherString) Сравнивает данную строку с другой строкой, игнорируя регистр букв. |
12 | byte getBytes() Кодирует эту строку в последовательность байтов с помощью платформы charset, сохраняя результат в новый массив байтов. |
13 | byte[] getBytes(String charsetName Кодирует эту строку в последовательность байтов с помощью платформы charset, сохраняя результат в новый массив байтов. |
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() Преобразует все символы в строке в верхний регистр, используя правила данного языкового стандарта. |
44 | String toUpperCase(Locale locale) Преобразует все символы в строке в верхний регистр, используя правила данного языкового стандарта. |
45 | String trim() Возвращает копию строки с пропущенными начальными и конечными пробелами. |
46 | static String valueOf(primitive data type x) Возвращает строковое представление переданного типа данных аргумента. |
Оглавление
- 1. Java – Самоучитель для начинающих
- 2. Java – Обзор языка
- 3. Java – Установка и настройка
- 4. Java – Синтаксис
- 5. Java – Классы и объекты
- 6. Java – Конструкторы
- 7. Java – Типы данных и литералы
- 8. Java – Типы переменных
- 9. Java – Модификаторы
- 10. Java – Операторы
- 11. Java – Циклы и операторы цикла
- 11.1. Java – Цикл while
- 11.2. Java – Цикл for
- 11.3. Java – Улучшенный цикл for
- 11.4. Java – Цикл do..while
- 11.5. Java – Оператор break
- 11.6. Java – Оператор continue
- 12. Java – Операторы принятия решений
- 12.1. Java – Оператор if
- 12.2. Java – Оператор if..else
- 12.3. Java – Вложенный оператор if
- 12.4. Java – Оператор switch..case
- 12.5. Java – Условный оператор (? :)
- 13. Java – Числа
- 13.1. Java – Методы byteValue(), shortValue(), intValue(), longValue(), floatValue(), doubleValue()
- 13.2. Java – Метод compareTo()
- 13.3. Java – Метод equals()
- 13.4. Java – Метод valueOf()
- 13.5. Java – Метод toString()
- 13.6. Java – Метод parseInt()
- 13.7. Java – Метод Math.abs()
- 13.8. Java – Метод Math.ceil()
- 13.9. Java – Метод Math.floor()
- 13.10. Java – Метод Math.rint()
- 13.11. Java – Метод Math.round()
- 13.12. Java – Метод Math.min()
- 13.13. Java – Метод Math.max()
- 13.14. Java – Метод Math.exp()
- 13.15. Java – Метод Math.log()
- 13.16. Java – Метод Math.pow()
- 13.17. Java – Метод Math.sqrt()
- 13.18. Java – Метод Math.sin()
- 13.19. Java – Метод Math.cos()
- 13.20. Java – Метод Math.tan()
- 13.21. Java – Метод Math.asin()
- 13.22. Java – Метод Math.acos()
- 13.23. Java – Метод Math.atan()
- 13.24. Java – Метод Math.atan2()
- 13.25. Java – Метод Math.toDegrees()
- 13.26. Java – Метод Math.toRadians()
- 13.27. Java – Метод Math.random()
- 14. Java – Символы
- 14.1. Java – Метод Character.isLetter()
- 14.2. Java – Метод Character.isDigit()
- 14.3. Java – Метод Character.isWhitespace()
- 14.4. Java – Метод Character.isUpperCase()
- 14.5. Java – Метод Character.isLowerCase()
- 14.6. Java – Метод Character.toUpperCase()
- 14.7. Java – Метод Character.toLowerCase()
- 14.8. Java – Метод Character.toString()
- 15. Java – Строки
- 15.1. Java – Метод charAt()
- 15.2. Java – Метод compareTo()
- 15.3. Java – Метод compareToIgnoreCase()
- 15.4. Java – Метод concat()
- 15.5. Java – Метод contentEquals()
- 15.6. Java – Метод copyValueOf()
- 15.7. Java – Метод endsWith()
- 15.8. Java – Метод equals()
- 15.9. Java – Метод equalsIgnoreCase()
- 15.10. Java – Метод getBytes()
- 15.11. Java – Метод getChars()
- 15.12. Java – Метод hashCode()
- 15.13. Java – Метод indexOf()
- 15.14. Java – Метод intern()
- 15.15. Java – Метод lastIndexOf()
- 15.16. Java – Метод length()
- 15.17. Java – Метод matches()
- 15.18. Java – Метод regionMatches()
- 15.19. Java – Метод replace()
- 15.20. Java – Метод replaceAll()
- 15.21. Java – Метод replaceFirst()
- 15.22. Java – Метод split()
- 15.23. Java – Метод startsWith()
- 15.24. Java – Метод subSequence()
- 15.25. Java – Метод substring()
- 15.26. Java – Метод toCharArray()
- 15.27. Java – Метод toLowerCase()
- 15.28. Java – Метод toString()
- 15.29. Java – Метод toUpperCase()
- 15.30. Java – Метод trim()
- 15.31. Java – Метод valueOf()
- 15.32. Java – Классы StringBuilder и StringBuffer
- 15.32.1. Java – Метод append()
- 15.32.2. Java – Метод reverse()
- 15.32.3. Java – Метод delete()
- 15.32.4. Java – Метод insert()
- 15.32.5. Java – Метод replace()
- 16. Java – Массивы
- 17. Java – Дата и время
- 18. Java – Регулярные выражения
- 19. Java – Методы
- 20. Java – Потоки ввода/вывода, файлы и каталоги
- 20.1. Java – Класс ByteArrayInputStream
- 20.2. Java – Класс DataInputStream
- 20.3. Java – Класс ByteArrayOutputStream
- 20.4. Java – Класс DataOutputStream
- 20.5. Java – Класс File
- 20.6. Java – Класс FileReader
- 20.7. Java – Класс FileWriter
- 21. Java – Исключения
- 21.1. Java – Встроенные исключения
- 22. Java – Вложенные и внутренние классы
- 23. Java – Наследование
- 24. Java – Переопределение
- 25. Java – Полиморфизм
- 26. Java – Абстракция
- 27. Java – Инкапсуляция
- 28. Java – Интерфейсы
- 29. Java – Пакеты
- 30. Java – Структуры данных
- 30.1. Java – Интерфейс Enumeration
- 30.2. Java – Класс BitSet
- 30.3. Java – Класс Vector
- 30.4. Java – Класс Stack
- 30.5. Java – Класс Dictionary
- 30.6. Java – Класс Hashtable
- 30.7. Java – Класс Properties
- 31. Java – Коллекции
- 31.1. Java – Интерфейс Collection
- 31.2. Java – Интерфейс List
- 31.3. Java – Интерфейс Set
- 31.4. Java – Интерфейс SortedSet
- 31.5. Java – Интерфейс Map
- 31.6. Java – Интерфейс Map.Entry
- 31.7. Java – Интерфейс SortedMap
- 31.8. Java – Класс LinkedList
- 31.9. Java – Класс ArrayList
- 31.10. Java – Класс HashSet
- 31.11. Java – Класс LinkedHashSet
- 31.12. Java – Класс TreeSet
- 31.13. Java – Класс HashMap
- 31.14. Java – Класс TreeMap
- 31.15. Java – Класс WeakHashMap
- 31.16. Java – Класс LinkedHashMap
- 31.17. Java – Класс IdentityHashMap
- 31.18. Java – Алгоритмы Collection
- 31.19. Java – Iterator и ListIterator
- 31.20. Java – Comparator
- 32. Java – Дженерики
- 33. Java – Сериализация
- 34. Java – Сеть
- 34.1. Java – Обработка URL
- 35. Java – Отправка Email
- 36. Java – Многопоточность
- 36.1. Java – Синхронизация потоков
- 36.2. Java – Межпоточная связь
- 36.3. Java – Взаимная блокировка потоков
- 36.4. Java – Управление потоками
- 37. Java – Основы работы с апплетами
- 38. Java – Javadoc