Все темы / Синтаксис и типы / String — текст

String — текст

String — это текст: имя, сообщение, адрес. В Java строки неизменяемы: любой метод не меняет старую строку, а возвращает новую. Это сбивает новичков — поэтому результат всегда надо куда-то присвоить.

Самые частые методы

String s = "Hello";
МетодЧто делаетРезультат
s.length()длина строкиint
s.toUpperCase()в верхний регистрString
s.toLowerCase()в нижний регистрString
s.charAt(0)символ по индексуchar
s.substring(1, 3)вырезать частьString
s.equals("Hello")сравнить по содержимомуboolean
s.contains("ell")содержит лиboolean
s.trim()убрать пробелы по краямString
Копнуть глубже — полный набор
МетодЧто делаетРезультат
s.split(",")разделить по символуString[]
s.startsWith("H")начинается сboolean
s.endsWith("o")заканчивается наboolean
s.indexOf('e')позиция символа (или -1)int
s.replace("l", "L")заменить все вхожденияString
s.isBlank()пустая или одни пробелыboolean

Важно: s.equals("Hello") сравнивает содержимое, а == — ссылки (один ли это объект). Для строк почти всегда нужен equals.

Под капотом — для глубокого понимания

Строки кэшируются в String Pool: литералы "Hello" с одинаковым текстом ссылаются на один объект, поэтому "Hi" == "Hi" иногда true — но полагаться на это нельзя. Конкатенация в цикле (s += x) каждый раз создаёт новый объект — на больших объёмах используй StringBuilder, который меняет один буфер на месте.

🎤 Закрыл тему, если можешь объяснить:
• почему строки в Java неизменяемы;
• чем equals отличается от == для строк;
• зачем нужен StringBuilder (если дошёл до 3-го слоя).
← к теме