Вы находитесь на странице: 1из 5

Шпаргалка: строки

Как создать строку


Можно создать строку:

1. через литерал — то есть через константу. Например, String myString = "Hello" . Этот способ —
оптимальный;

2. через new . Например, String myString = new String("Hello") ;

3. методом — он превращает другие типы данных в строки. Например, String strNum =


toString()

num.toString() . Этот метод работает только для ссылочных типов, для примитивов программа

выдаст ошибку.

Как сравнивать строки


Нужно сравнивать строки только методом equals() . Так сравнения всегда работают правильно.
Знак == не сработает, если одну строку создали через new , а другую — через строковый литерал.

System.out.println(one.equals(two)); // выведет true

Методы класса String


Посчитать символы — length() . Например, "Java".length() вернёт число 4.

Проверить, пустая ли строка, — isEmpty() или isBlank() для строк с пробелами. Например,
"".isEmpty() вернёт true . А "Java".isEmpty() вернёт false .

Удалить пробелы в начале и конце строки — trim() . Например, " Привет, я Java!".trim() вернёт
"Привет, я Java!" .

Сделать буквы заглавными — toUpperCase() . Например, "Привет, я Java!".toUpperCase() .

Сделать буквы маленькими — toLowerCase() .


Если захочешь познакомиться с остальными, прочитай официальную документацию.

Подстроки
Подстрока (англ. substring) — это непрерывный набор символов, которые входят в строку.

Например, «обед» — подстрока для «победа». Фраза «упала на лапу» — подстрока для строки «А
роза упала на лапу Азора».
Строка всегда будет подстрокой самой себя. Слово «чай» полностью входит в «чай».

Подстроки учитывают регистр. Например, «Кар» не входит в «картошка», а «кар» входит.

Шпаргалка: строки 1
Строку можно рассматривать как массив символов. Например, строка "привет" — массив. У буквы
«п» индекс 0, «р» — 1 и так до конца.
Методы работают со строками и подстроками так же, как с массивами.

Методы подстрок
Найти индекс начала подстроки — indexOf() и lastIndexOf() . Например, "Hello,

World!".indexOf("World") .
Начать поиск подстроки с произвольного символа — indexOf() и lastIndexOf() . В скобках нужно
указать, с какого индекса начать поиск. Например, "Hello, World!".indexOf("World", 5) .
Вернуть символ по индексу, который ты укажешь, — charAt() . Например, "Так много

методов!".charAt(0) .

Найти подстроки
Метод contains(String other) . Вернёт true , если подстрока содержится в любом месте строки.
Например, «юмор» в «оксюморон» — "оксюморон".contains("юмор")

Метод startsWith(String other) вернёт true , если подстрока содержится в начале строки. Например,
«ок» в «оксюморон» — "оксюморон".startsWith("ок") .
Метод endsWith(String other) вернёт true , если подстрока содержится в конце строки. Например,
«он» в «оксюморон» — "оксюморон".endsWith("он") .

Выделить подстроку
Метод substring(int beginIndex, int endIndex) возьмёт подстроку с индекса beginIndex до endIndex .
Например, А из Александр: "Александр".substring(int 0, int 1) .
Обрати внимание: beginIndex берётся включительно, а вот endIndex исключается из строки.
Можно взять все элементы с начального индекса и до конца строки. Поможет метод substring(int

beginIndex) .

Заменить подстроку
Метод replace(String target, String replacement) меняет все вхождения подстроки target на строку
replacement. Например, "раз два, раз два".replace("раз", "три")
Метод replaceFirst(String target, String replacement) заменяет подстроку target на строку replacement

только один раз — когда она встречается впервые.


Цепочка вызовов. Несколько вызовов replace() можно объединить в «цепочку». Это сработает,
потому что метод принимает объект класса String и возвращает объект того же класса.
Например, в строке «зелёный зелёный зелёный» нужно заменить «зелёный» на «красный», а затем
буквы «а» на «А».
Можно построить цепочку вызовов: "зелёный зелёный зелёный".replace("зелёный", "красный").replace("а",

"А") .

Шпаргалка: строки 2
Разделить строку
Чтобы превратить строку в массив, есть метод split(String regex) . Он превращает строку в массив
строк String[] .
Метод разделит строку по символу или строке-разделителю regex . Например, символ — запятая
',' . Получится String[] split = kittens.split(",") .

Всё до первой запятой — индекс 0, между первой и второй запятой — 1. Остаток строки станет
последним элементом массива.

Запомнить. Символы '.' , '$' , '|' , '(' , ')' , '[' , '{' , '^' , '?' , '*' , '+' , '\' нельзя
использовать напрямую как разделители. Если нужно что-то из них, поставь два обратных слэша
"\\" Например, kittens.split("\\*") .

Объединить строки
Статический метод join(String delimeter, String... strs) превращает несколько элементов в строку.
Аргумент delimiter — это разделитель, а strs — это строки. Простыми словами, метод склеивает
строки strs через разделитель delimiter .

Например, есть строки "борщ" , "котлета" , "компот" . Их нужно объединить в одну строку через
запятую:

public class Praktikum {


public static void main(String[] args) {
String dish1 = "борщ";
String dish2 = "котлета";
String dish3 = "компот";

String allDishes = String.join(", ", dish1, dish2, dish3); // разделитель — запятая с пробелом

Шпаргалка: строки 3
}

Запомнить. String.join() может принимать вторым аргументом массив.


Представь, что у тебя в программе есть массив строк arrayOfDishes . Тебе нужно объединить
элементы этого массива через запятую и пробел.

Можно написать String.join(", ", arrayOfDishes); — указать в скобках запятую и пробел, а затем
массив.

Отформатировать строки
Форматирование — способ создавать или выводить строки определённым образом.
Поможет метод format(String format, Object... args) .
В скобках нужно указать:

символы преобразования — то, что заменится на аргументы;

varargs-аргументы. Их должно быть столько же, сколько и символов преобразования.

Метод заменит символы преобразования на аргументы из varargs. Поэтому их должно быть равное
количество.
Пример. В этом коде метод format() заменит "%s, %s и %s" на "%антоновка, белый налив и апорт" :

// создаёшь строку с помощью format


String myApples = String.format("Собрали яблоки трёх сортов: %s, %s и %s", "антоновка", "белый налив", "апорт");
// выводишь готовую строку в консоль
System.out.println(myApples);
// выведет на экран "Собрали яблоки трёх сортов: антоновка, белый налив и апорт"

Какие символы преобразования нужны:

'%s' для строк;

'%b' для булевых значений;

'%d' для целых чисел;

'%f' для чисел с плавающей запятой;

'%c' для символов, например char и Character .

Остальные виды описаны в документации.

Перенести строки
Есть два способа добавлять переносы в строку.
Добавить символ '%n' . Когда программа его увидит, сделает перенос строки.
Добавить специальный символ '\n' . Он сработает так же: программа прочитает его и сделает
перенос.

Шпаргалка: строки 4
Символ '%n' используют только в строке, которую форматируют, — это первый аргумент метода
format(String format, Object... args) . А '\n' работает везде. Чаще используют '\n' .

Задать минимальное количество символов


Если в формате '%s' добавить положительное число между '%' и 's' , можно задать минимальное
количество символов в выводе. Недостающие символы заполняются пробелами.
Это похоже на выравнивание по правому краю в текстовых редакторах:

public class Praktikum {


public static void main(String[] args) {
String potatoes = "Картошка, мешки, 8";
System.out.printf("'%25s'", potatoes);
}
}

Выровнять по левому краю


Для этого целое число после '%' нужно сделать отрицательным:

public class Praktikum {


public static void main(String[] args) {
String potatoes = "Картошка, мешки, 8";
System.out.printf("'%-25s'", potatoes); // выведет "Картошка, мешки, 8 "
}
}

Ограничить количество символов


Поможет параметр точности. Точность задаётся между '%' и 's' как дробное число. Целая часть
— минимальное количество символов, дробная — максимальное.

public class Praktikum {


public static void main(String[] args) {
String potatoes = "Картошка, мешки, 8";
System.out.printf("'%1.15s'", potatoes); // выведет не менее 1 символа и не более 15, то есть "Картош
ка, мешки"
}
}

Шпаргалка: строки 5

Вам также может понравиться