На этом шаге мы рассмотрим функции для работы с регулярными выражениями
В классе String есть функции, которые принимают в качестве аргумента регулярные выражения. Такие функции могут быть полезными, когда, например, нужно проверить наличие подстрок в строке, которые удовлетворяют какому-то шаблону. Рассмотрим ниже каждую из таких функций.
Функция | Описание |
---|---|
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