Для решения этой задачи вам понадобится использовать класс Pattern из пакета java.util.regex вместе с классом Matcher.
Во-первых, вам нужно создать регулярное выражение, которое будет искать повторяющиеся символы в строке. Для этого вы можете использовать выражение "(.)1+", которое будет искать любой символ (.), за которым следует один или более повторений этого же символа (1+).
Во-вторых, вы должны создать объект Pattern, передавая ему регулярное выражение в качестве аргумента:
Pattern pattern = Pattern.compile("(.)1+");
Затем, создайте объект Matcher, который будет использоваться для поиска совпадений с данным шаблоном в строке:
Matcher matcher = pattern.matcher(str);
Где str - это ваша исследуемая строка.
Теперь вы можете использовать метод find() объекта Matcher для поиска совпадений:
while (matcher.find()) {
String match = matcher.group();
System.out.println(match);
}
Этот цикл продолжается, пока существуют совпадения с шаблоном в строке. Внутри цикла мы можем просто получить совпадение, используя метод group() объекта Matcher, и затем вывести его на экран.
Вот полный пример:
import java.util.regex.*;
public class Main {
public static void main(String[] args) {
String str = "aaabbbcccdddeee";
Pattern pattern = Pattern.compile("(.)\1+");
Matcher matcher = pattern.matcher(str);
while (matcher.find()) {
String match = matcher.group();
System.out.println(match);
}
}
}
Запустив этот код, мы получим следующий вывод:
aaa
bbb
ccc
ddd
eee
Таким образом, мы успешно разработали регулярное выражение и использовали класс Pattern и Matcher для вывода строк с повторяющимися символами.