1. Сравнение строк
Сравнение — одна из самых частых вещей, которая делается со строками. У класса String более десяти различных методов, которые используются для сравнения строк со строками. Ниже мы рассмотрим семь основных.
Методы | Описание |
---|---|
|
Строки считаются равными, если все их символы совпадают. |
|
Сравнивает строки, игнорируя регистр (размер) букв |
|
Сравнивает строки лексикографически. Возвращает 0, если строки равны. Число меньше нуля, если текущая строка меньше строки-параметра. Число больше нуля, если текущая строка больше строки-параметра |
|
Сравнивает строки лексикографически, игнорирует регистр. Возвращает 0, если строки равны. Число меньше нуля, если текущая строка меньше строки-параметра. Число больше нуля, если текущая строка больше строки-параметра |
|
Сравнивает части строк |
|
Проверяет, что текущая строка начинается со строки prefix |
|
Проверяет, что текущая строка заканчивается на строку suffix |
Допустим, вы хотите написать программу, которая просит пользователя ввести путь к файлу и проверяет, что это за файл по его расширению. Тогда код такой программы мог бы выглядеть примерно так:
Код | Примечания |
---|---|
|
Создание объекта Scanner Чтение строки с консоли Проверяем, что строка path оканчивается на заданную строку
|
2. Поиск подстрок
Вторая по популярности операция после сравнения строк — это поиск одной строки в другой. Для этого у класса String тоже есть немного методов:
Методы | Описание |
---|---|
|
Ищет строку str в текущей строке. Возвращает индекс первого символа встретившейся строки. |
|
Ищет строку str в текущей строке, пропустив index первых символов. Возвращает индекс найденного вхождения. |
|
Ищет строку str в текущей строке с конца. Возвращает индекс первого вхождения. |
|
Ищет строку str в текущей строке с конца, пропустив index первых символов. |
|
Проверяет, что текущая строка совпадает с шаблоном, заданным регулярным выражением. |
Методы indexOf(String)
и indexOf(String, index)
часто используются в паре. Первый позволяет найти первое вхождение переданной подстроки в текущей строке. А второй метод позволяет найти второе, третье и т.д. вхождения за счет того, что пропускает первые index символов.
Допустим, у нас есть url типа такого: «https://domen.com/about/reviews», и мы хотим заменить имя домена на javarush.com. Домены в урлах могут быть разными, но мы знаем, что:
- Перед именем домена идут два слеша
//
- После имени домена идет одинарный слеш
/
Вот как бы выглядел код такой программы:
Код | Примечания |
---|---|
|
Создание объекта Scanner Чтение строки с консоли Получаем индекс первого вхождения строки // Получаем индекс первого вхождения строки / , но ищем только после символов // .Получаем строку от начала и заканчивая символами // Получаем строку от / и до конца.Склеиваем строки и новый домен. |
Методы lastIndexOf(String)
и lastIndexOf(String, index)
работают точно так же, только поиск ведется с конца строки к началу.
3. Создание подстрок
Кроме сравнения строк и поиска подстрок, есть еще одно очень популярное действие — получение подстроки из строки. В предыдущем примере вы как раз видели вызов метода substring()
, который возвращал часть строки.
Вот список из 8 методов получения подстрок из текущей строки:
Методы | Описание |
---|---|
|
Возвращает подстроку, заданную интервалом символов beginIndex..endIndex . |
|
Повторяет текущую строку count раз |
|
Возвращает новую строку: заменяет символ oldChar на символ newChar |
|
Заменяет в текущей строке подстроку, заданную регулярным выражением. |
|
Заменяет в текущей строке все подстроки, совпадающие с регулярным выражением. |
|
Преобразует строку к нижнему регистру |
|
Преобразует строку к верхнему регистру |
|
Удаляет все пробелы в начале и конце строки |
Вот краткое описание существующих методов:
Метод substring(int beginIndex, int endIndex)
Метод substring
возвращает новую строку, которая состоит из символов текущей строки, начиная с символа под номером beginIndex
и заканчивая endIndex
. Как и во всех интервалах в Java, символ с номером endIndex
в интервал не входит. Примеры:
Код | Результат |
---|---|
|
|
|
|
|
|
|
|
Если параметр endIndex
не указывается (а так можно), подстрока берется от символа beginIndex и до конца строки.
Метод repeat(int n)
Метод repeat просто повторяет текущую строку n
раз. Пример:
Код | Результат |
---|---|
|
|
|
|
|
|
|
|
Метод replace(char oldChar, char newChar)
Метод replace()
возвращает новую строку, в которой все символы oldChar
заменены на символ newChar
. Длина строки при этом не меняется. Пример:
Код | Результат |
---|---|
|
|
|
|
|
|
|
|
Методы replaceFirst()
и replaceAll()
Метод replaceAll()
заменяет все вхождения одной подстроки на другую. Метод replaceFirst()
заменяет первое вхождение переданной подстроки на заданную подстроку. Строка, которую заменяют, задается регулярным выражением. Разбирать регулярные выражения мы будем в квесте Java Multithreading.
Примеры:
Код | Результат |
---|---|
|
|
|
|
|
|
|
|
Методы toLowerCase() и toUpperCase()
С этими методами мы познакомились, когда только в первый раз учились вызывать методы класса String
.
Метод trim()
Метод trim()
удаляет у строки пробелы с начала и с конца строки. Пробелы внутри строки никто не трогает. Примеры:
Код | Результат |
---|---|
|
|
|
|
|
|
|
|
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ