Получить подстроку из строки s можно с помощью выражения

Обновлено: 22.12.2024

  • Автор записи

1. Обзор

В этом кратком руководстве мы сосредоточимся на функциональности подстрок строк в Java.

В основном мы будем использовать методы из класса String и несколько из класса StringUtils Apache Commons.

Во всех следующих примерах мы будем использовать эту простую строку:

2. Основы подстроки

Давайте начнем с очень простого примера – извлечения подстроки с начальным индексом:

Обратите внимание, как мы извлекли страну проживания Джулии в нашем примере здесь.

Есть также возможность указать конечный индекс , но без него – подстрока будет идти до конца строки .

Давайте сделаем это и избавимся от этой лишней точки в конце, как в приведенном выше примере:

В приведенных выше примерах мы использовали точное положение для извлечения подстроки.

2.1. Получение подстроки, начинающейся с определенного символа

В случае, если позиция должна быть динамически рассчитана на основе символа или Строка мы можем использовать Индекс метод:

3. Использование подпоследовательности

Класс String предоставляет другой метод, называемый Подпоследовательностью , который действует аналогично методу substring .

Единственная разница в том, что он возвращает CharSequence вместо Строка и он может использоваться только с определенным начальным и конечным индексом:

4. Использование Регулярных Выражений

Регулярные выражения придут нам на помощь , если нам нужно извлечь подстроку, соответствующую определенному шаблону.

Затем мы применим шаблон, чтобы найти совпадение из данного текста:

После успешного совпадения мы можем извлечь совпадающую строку :

Для получения более подробной информации о регулярных выражениях Java ознакомьтесь с этим руководством.

5. Использование разделения

Мы можем использовать метод split из класса String для извлечения подстроки. Допустим, мы хотим извлечь первое предложение из примера String. Это довольно легко сделать с помощью split :

Поскольку метод разделения принимает регулярное выражение, нам пришлось избежать символа точки. Теперь в результате получается массив из 2 предложений.

Мы можем использовать первое предложение (или перебирать весь массив):

Пожалуйста, обратите внимание, что есть лучшие способы обнаружения предложений и токенизации с помощью Apache OpenNLP. Ознакомьтесь с этим руководством, чтобы узнать больше об API OpenNLP.

6. Использование сканера

Обычно мы используем Scanner для анализа примитивных типов и Строк с использованием регулярных выражений. A Scanner разбивает свой ввод на токены , используя шаблон разделителя , который по умолчанию соответствует пробелам.

Давайте выясним, как использовать это, чтобы получить первое предложение из текста примера:

В приведенном выше примере мы установили пример String в качестве источника для использования сканером.

Затем мы устанавливаем символ точки в качестве разделителя (который должен быть экранирован, иначе он будет рассматриваться как специальный символ регулярного выражения в этом контексте).

Наконец, мы утверждаем первый токен из этого вывода с разделителями.

При необходимости мы можем перебрать всю коллекцию токенов, используя цикл while .

7. Зависимости Maven

Мы можем пойти немного дальше и использовать полезную утилиту – StringUtils class – часть библиотеки Apache Commons Lang :

Вы можете найти последнюю версию этой библиотеки здесь .

8. Использование стрингутилов

Библиотеки Apache Commons добавляют некоторые полезные методы для управления основными типами Java. Apache Commons Lang предоставляет множество вспомогательных утилит для API java.lang, в первую очередь String методы манипулирования.

В этом примере мы увидим как извлечь подстроку, вложенную между двумя строками :

Существует упрощенная версия этого метода в случае, если подстрока вложена между двумя экземплярами одной и той же строки :

Метод substringAfter из того же класса получает подстроку после первого вхождения разделителя.

Разделитель не возвращается:

Аналогично, метод substringBefore получает подстроку перед первым вхождением разделителя.

Разделитель не возвращается:

Вы можете ознакомиться с этим руководством, чтобы узнать больше об обработке String с помощью API Apache Commons Lang.

9. Заключение

В этой краткой статье мы выяснили различные способы извлечения подстроки из String в Java. Вы можете изучить наши другие учебные пособия по строковым манипуляциям в Java.

Читайте также: