Строки в Java используются для работы с текстовыми данными. Каждое взаимодействие с текстом в приложении — от пользовательского ввода до работы с веб-запросами — включает строки. Рассмотрим основы работы со строками в Java, их создание, основные методы и распространенные операции.
- Создание строк в Java
- Основные методы класса String
- Распространенные операции со строками в Java
- Иммутабельность (неизменяемость) строк в Java
- Использование StringBuilder и StringBuffer для изменения строк в Java
- Заключение
- Постоянная поддержка от наставника и учебного центра
- Помощь с трудоустройством
- Готовое портфолио к концу обучения
- Практика с первого урока
Вы получите именно те инструменты и навыки, которые позволят вам найти работу
Узнать большеСоздание строк в Java
Cтроки в Java представлены объектами класса String
. В отличие от примитивных типов данных, таких как int
или char
, строки относятся к ссылочному типу, а это значит, что они создаются как объекты в памяти.
Строки как объекты
Строка в Java — это неизменяемый (immutable) объект, который хранит последовательность символов.
var greeting = "Привет, мир!";
Эта строка хранится в специальной области памяти, называемой «строковый пул» (String Pool).
Литералы строк
Самый простой способ создания строки в Java — использовать строковые литералы. Это строки, заключенные в двойные кавычки.
var greeting = "Привет, мир!";
Литералы строк автоматически сохраняются в пуле строк, что позволяет Java эффективно управлять памятью и уменьшать количество дублирующихся строк.
Конструктор класса String
Строки в Java также можно создавать с использованием конструктора класса String
.
var greeting = new String("Привет, мир!");
Этот способ создает новый объект строки, даже если такая строка уже существует в пуле. Поэтому использование литералов предпочтительнее.
Пул строк в Java
Java использует строковый пул для оптимизации использования памяти. Когда строка создается с помощью литерала, JVM проверяет, существует ли уже такая строка в пуле. Если она найдена, то ссылка на существующую строку возвращается; если нет — создается новая строка и помещается в пул. Это позволяет избежать создания дубликатов строк в памяти.
Основные методы класса String
Класс String
предоставляет множество методов для работы со строками. Рассмотрим несколько самых популярных.
- Получение длины строки:
length()
.
var greeting = "Привет";
var length = greeting.length(); // Возвращает 6
- Метод
charAt()
позволяет получить символ в строке по его индексу (нумерация начинается с 0).
var letter = greeting.charAt(0); // Возвращает 'П'
- Конкатенация строк:
concat(String str)
и оператор+
для объединения двух строк.
var firstName = "Иван";
var lastName = "Иванов";
var fullName = firstName.concat(" ").concat(lastName); // Использование concat
// Или
var fullName2 = firstName + " " + lastName; // Использование оператора +
- Сравнение длины строк:
equals()
иequalsIgnoreCase()
.
var language1 = "Java";
var language2 = "java";
language1.equals(language2); // Возвращает false
language1.equalsIgnoreCase(language2); // Возвращает true
- Извлечение подстроки:
substring(int beginIndex, int endIndex)
.
var sub = greeting.substring(0, 3); // Возвращает "При"
Распространенные операции со строками в Java
- Преобразование строки в нижний или верхний регистр c помощью методов
toLowerCase()
иtoUpperCase()
.
var lower = greeting.toLowerCase(); // "привет"
var upper = greeting.toUpperCase(); // "ПРИВЕТ"
- Удаление начальных и конечных пробелов с помощью метода
trim()
.
var spaced = " Привет ";
var trimmed = spaced.trim(); // "Привет"
- Разделение строки на массив подстрок методом
split()
.
String[] words = str.split(" "); // Разделяет строку по пробелам
- Замена символов или подстрок с помощью
replace()
иreplaceAll()
.
var newStr = greeting.replace("мир", "Java"); // "Привет, Java!"
Иммутабельность (неизменяемость) строк в Java
Строки в Java неизменяемы, то есть после создания строка не может быть изменена. Например, методы concat()
, toLowerCase()
и replace()
возвращают новую строку, не изменяя исходную.
Иммутабельность строк в Java полезна для оптимизации памяти, поскольку строки могут быть кешированы в строковом пуле, а также для безопасности в многопоточном окружении. Но это надо учитывать при использовании конкатенации строк, поскольку при этом создается много временных объектов, что может снизить производительность.
Использование StringBuilder
и StringBuffer
для изменения строк в Java
Для изменения строк в Java рекомендуется использовать классы StringBuilder
и StringBuffer
, которые позволяют изменять строки без создания новых объектов:
StringBuilder sb = new StringBuilder("Привет");
sb.append(", мир!");
Иногда конкатенация строк с использованием оператора +
в циклах может быть неэффективной, так как при каждой итерации создается новый объект строки. Использование StringBuilder
в этом случае значительно повышает производительность.
var sb = new StringBuilder();
for (int i = 0; i < 1000; i++) {
sb.append(i);
}
var result = sb.toString();
- Постоянная поддержка от наставника и учебного центра
- Помощь с трудоустройством
- Готовое портфолио к концу обучения
- Практика с первого урока
Вы получите именно те инструменты и навыки, которые позволят вам найти работу
Узнать большеЗаключение
Строки в Java — один из основных инструментов Java-разработчика. Знание основных методов и операций, таких как конкатенация, сравнение, преобразование регистра и работа с подстроками, помогает создавать оптимизированные и читаемые программы. На курсе «Основы Java» от Хекслета вы научитесь работать со строками в Java на уровне, достаточном для создания качественного, оптимизированного кода.