Шаг 83.
Язык программирования Java.
Класс String и регулярные выражения

На этом шаге мы рассмотрим функции для работы с регулярными выражениями

В классе String есть функции, которые принимают в качестве аргумента регулярные выражения. Такие функции могут быть полезными, когда, например, нужно проверить наличие подстрок в строке, которые удовлетворяют какому-то шаблону. Рассмотрим ниже каждую из таких функций.

Таблица 1. Функции для работы с регулярными выражениями
Функция Описание
boolean matches(String regex) Принимает шаблон и возвращает true, если в заданной строке есть подстрока удовлетворяющая заданному шаблону. В противном случае возвращает false.
String replaceAll(String regex, String replacement) Принимает шаблон и заменяет все подстроки, удовлетворяющие этому шаблону, на строку replacement.
String replaceFirst(String regex, String replacement) Принимает шаблон и заменяет только первую подстроку, удовлетворяющую этому шаблону, на строку replacement.
String[] split(String regex) Принимает шаблон, по которому будет происходить разбиение исходной строки на подстроки. Возвращает массив полученных подстрок.
String[] split(String regex, int limit) Отличие ее от 4 функции в том, что вторым аргументом задается лимит на количество разбиений.

Все функции, рассмотренные выше, принимают первым аргументом регулярное выражение. Чтобы узнать как его составлять обратитесь к этому источнику.


Приведем ниже пример использования регулярных выражений.


/**
 * Применение регулярных выражений
 * */

public class Main {
    public static void main(String[] args) {
        String s = "AV Analytics Vidhya AV";

        /*Применение функции matches*/
        System.out.println("Применение функции matches");
        if (s.matches("AV")) {
            System.out.println("Строка \"" + s + "\" содержит строку \"AV\"");
        } else {
            System.out.println("Строка \"" + s + "\" не содержит строку \"AV\"");
        }

        /*Применение функции replaceAll*/
        System.out.println("\nПрименение функции replaceAll");
        String replaceAll = s.replaceAll("AV", "TT");
        System.out.println("Исходная строка: \"" + s + "\"");
        System.out.println("Полученная строка: \"" + replaceAll + "\"");

        /*Применение функции replaceFirst*/
        System.out.println("\nПрименение функции replaceFirst");
        String replaceFirst = s.replaceFirst("AV", "TT");
        System.out.println("Исходная строка: \"" + s + "\"");
        System.out.println("Полученная строка: \"" + replaceFirst + "\"");

        /*Применение функции split*/
        System.out.println("\nПрименение функции split");
        String[] words = s.split(" ");
        System.out.println("Исходная строка: \"" + s + "\"");
        System.out.print("Полученные строки:");

        for (int i = 0; i < words.length; i++) {
            System.out.print(" \"" + words[i] + "\"");
            if (i + 1 < words.length) {
                System.out.print(",");
            }
        }
        System.out.println();
    }
}

Проект можно взять здесь


Рис. 1. Вывод программы


На следующем шаге мы рассмотрим классы StringBuilder и StringBuffer

Предыдущий шаг Содержание Следующий шаг