Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Оглавление

Строки

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

Создание строки

Строку пишут в двойных кавычках. Пустые кавычки "" дают пустую строку:

void main() {
    String greeting = "Привет, Java!";
    IO.println(greeting);
}

Результат:

Привет, Java!

Склейка строк

Оператор + склеивает строки. Если один из операндов строка, второй тоже превращается в текст:

void main() {
    String name = "Олег";
    int age = 30;
    IO.println("Меня зовут " + name + ", мне " + age);
}

Результат:

Меня зовут Олег, мне 30

Будьте внимательны с числами: "Сумма: " + 2 + 3 даст Сумма: 23, потому что склейка идёт слева направо. Возьмите арифметику в скобки: "Сумма: " + (2 + 3).

Длина и символы

Метод — действие, которое умеет выполнять объект. Его вызывают через точку. Метод length() возвращает число символов, а charAt() — символ по индексу, то есть порядковому номеру с нуля:

void main() {
    String word = "Java";
    IO.println(word.length());
    IO.println(word.charAt(0));
    IO.println(word.charAt(3));
}

Результат:

4
J
a

Последний символ имеет индекс length() - 1. Другие методы строк разберём в уроке о методах строк.

Специальные символы

Некоторые символы нельзя просто вписать в строку. Их записывают через обратную косую черту — это называется экранированием: \n — перевод строки, \t — табуляция, \" — кавычка, \\ — сама косая черта:

void main() {
    IO.println("Первая строка\nВторая строка");
    IO.println("Он сказал: \"Привет\"");
}

Результат:

Первая строка
Вторая строка
Он сказал: "Привет"

Строки не меняются

Строку нельзя изменить после создания. Методы вроде toUpperCase() не трогают исходную строку, а возвращают новую:

void main() {
    String city = "рим";
    String upper = city.toUpperCase();
    IO.println(city);
    IO.println(upper);
}

Результат:

рим
РИМ

Частая ошибка

Строки нельзя сравнивать через ==: этот оператор проверяет, один ли это объект в памяти, а не одинаковый ли в них текст. Для сравнения текста есть метод equals():

void main() {
    String a = "Анна";
    String b = new String("Анна");
    IO.println(a == b);
    IO.println(a.equals(b));
}

Результат:

false
true

Иногда == случайно даёт true — Java переиспользует одинаковые строки из кода. Но строки, введённые пользователем или собранные из частей, будут разными объектами, поэтому всегда пишите equals().

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.