Скидки до 81 000 руб и профессия в подарок!

Главная | Все статьи | Код

Строки в Java: создание, методы и операции

Java Время чтения статьи ~4 минуты
Строки в Java: создание, методы и операции главное изображение

Строки в Java используются для работы с текстовыми данными. Каждое взаимодействие с текстом в приложении — от пользовательского ввода до работы с веб-запросами — включает строки. Рассмотрим основы работы со строками в Java, их создание, основные методы и распространенные операции.

Java-разработчик — с нуля до трудоустройства за 10 месяцев
  • Постоянная поддержка от наставника и учебного центра
  • Помощь с трудоустройством
  • Готовое портфолио к концу обучения
  • Практика с первого урока

Вы получите именно те инструменты и навыки, которые позволят вам найти работу

Узнать больше

Создание строк в 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 предоставляет множество методов для работы со строками. Рассмотрим несколько самых популярных.

  1. Получение длины строки: length().
var greeting = "Привет";

var length = greeting.length(); // Возвращает 6
  1. Метод charAt() позволяет получить символ в строке по его индексу (нумерация начинается с 0).
var letter = greeting.charAt(0); // Возвращает 'П'
  1. Конкатенация строк: concat(String str) и оператор + для объединения двух строк.
var firstName = "Иван";

var lastName = "Иванов";

var fullName = firstName.concat(" ").concat(lastName); // Использование concat

// Или

var fullName2 = firstName + " " + lastName; // Использование оператора +
  1. Сравнение длины строк: equals() и equalsIgnoreCase().
var language1 = "Java";

var language2 = "java";

language1.equals(language2); // Возвращает false

language1.equalsIgnoreCase(language2); // Возвращает true
  1. Извлечение подстроки: substring(int beginIndex, int endIndex).
var sub = greeting.substring(0, 3); // Возвращает "При"

Распространенные операции со строками в Java

  1. Преобразование строки в нижний или верхний регистр c помощью методов toLowerCase() и toUpperCase().
var lower = greeting.toLowerCase(); // "привет"

var upper = greeting.toUpperCase(); // "ПРИВЕТ"
  1. Удаление начальных и конечных пробелов с помощью метода trim().
var spaced = " Привет ";

var trimmed = spaced.trim(); // "Привет"
  1. Разделение строки на массив подстрок методом split().
String[] words = str.split(" "); // Разделяет строку по пробелам
  1. Замена символов или подстрок с помощью 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-разработчик — с нуля до трудоустройства за 10 месяцев
  • Постоянная поддержка от наставника и учебного центра
  • Помощь с трудоустройством
  • Готовое портфолио к концу обучения
  • Практика с первого урока

Вы получите именно те инструменты и навыки, которые позволят вам найти работу

Узнать больше

Заключение

Строки в Java — один из основных инструментов Java-разработчика. Знание основных методов и операций, таких как конкатенация, сравнение, преобразование регистра и работа с подстроками, помогает создавать оптимизированные и читаемые программы. На курсе «Основы Java» от Хекслета вы научитесь работать со строками в Java на уровне, достаточном для создания качественного, оптимизированного кода.

Аватар пользователя Анастасия Уминская
Анастасия Уминская 10 октября 2024
1
Рекомендуемые программы
профессия
Осваивайте разработку веб-страниц, оживляйте дизайн макетов, публикуйте сайты и приложения. Отслеживайте ошибки в интерфейсе и устраняйте их
10 месяцев
с нуля
Старт 7 ноября
профессия
Обучитесь разработке бэкенда сайтов и веб-приложений — серверной части, которая отвечает за логику и базы данных
10 месяцев
с нуля
Старт 7 ноября
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 7 ноября
профессия
Научитесь разработке веб-приложений, сайтов и программного обеспечения на языке Java, программируйте и используйте структуры данных
10 месяцев
с нуля
Старт 7 ноября
профессия
новый
Собирайте, анализируйте и интерпретируйте данные, улучшайте бизнес-процессы и продукт компании. Обучитесь работе с библиотеками Python
9 месяцев
с нуля
Старт 7 ноября
профессия
Занимайтесь созданием сайтов, веб-приложений, сервисов и их интеграцией с внутренними бизнес-системами на бекенд-языке PHP
10 месяцев
с нуля
Старт 7 ноября
профессия
Создание веб-приложений со скоростью света
5 месяцев
c опытом
Старт 7 ноября
профессия
Обучитесь разработке визуальной части сайта — фронтенда, а также реализации серверной — бэкенда. Освойте HTML, CSS, JavaScript
16 месяцев
с нуля
Старт 7 ноября
профессия
Разработка бэкенд-компонентов для веб-приложений
10 месяцев
с нуля
Старт 7 ноября
профессия
новый
Организовывайте процесс автоматизации тестирования на проекте, обучитесь языку программирования JavaScript, начните управлять процессом тестирования
8 месяцев
c опытом
Старт 7 ноября