Строки в Java и класс String
Строки в Java: класс String и его методы, неизменяемость, конкатенация, сравнение строк через equals и эффективный StringBuilder.
Строка в Java — это объект класса
String, хранящий последовательность символов. Строки неизменяемы: любой «изменяющий» метод возвращает новую строку, а исходная остаётся прежней.
Создание строк
String greeting = "Привет";
String name = "Мир";
System.out.println(greeting.length()); // 6 — длина строки
Вывод:
6
Конкатенация
Строки склеивают оператором +. При сложении с числом оно автоматически превращается в строку.
String name = "Аня";
int age = 25;
String message = name + ", возраст " + age;
System.out.println(message);
Вывод:
Аня, возраст 25
Полезные методы
Метод | Что делает |
| количество символов |
| смена регистра |
| символ по индексу |
| подстрока |
| содержит ли подстроку |
| замена символов/подстрок |
| убирает пробелы по краям |
String s = " Java Rocks ";
System.out.println(s.trim()); // "Java Rocks"
System.out.println(s.trim().toUpperCase());// "JAVA ROCKS"
System.out.println("Java".charAt(0)); // 'J'
System.out.println("Java".substring(1, 3));// "av"
Вывод:
Java Rocks JAVA ROCKS J av
Сравнение строк: equals, а не ==
Это важнейший момент. Оператор == сравнивает ссылки (один ли это объект), а не содержимое. Чтобы сравнить строки по содержимому, используют метод equals().
String a = "привет";
String b = new String("привет");
System.out.println(a == b); // false — разные объекты
System.out.println(a.equals(b)); // true — одинаковое содержимое
Вывод:
false true
Запомните правило: строки сравнивают через
equals(). Для сравнения без учёта регистра естьequalsIgnoreCase().
StringBuilder для частых изменений
Поскольку String неизменяем, склейка строк в цикле создаёт множество лишних объектов. Если строку нужно собирать по кусочкам, эффективнее StringBuilder.
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 3; i++) {
sb.append("№").append(i).append(" ");
}
System.out.println(sb.toString());
Вывод:
№1 №2 №3
Коротко
- Строка — объект
String, неизменяемый: методы возвращают новую строку. - Склейка — оператором
+; число при этом превращается в строку. - Сравнивайте строки через
equals(), а не==. - Для сборки строки в цикле используйте
StringBuilder.