Возник вопрос по поводу регулярных выражений

Условие задачи: На вход подается строка, каждая строка представляет собой двоичный код. Правильным кодом называется строка, которая состоит либо только из нулей, либо только из единиц, либо нули и единицы в ней чередуются. Написать статическую функцию boolean isCorrectCode(String s), которая возвращает, правильный ли код (использовать matches)

Мой код:

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class P37 {
    public static void main(String[] args) {
        Scanner src = new Scanner(System.in);
        String s = src.nextLine();
        System.out.println(isCorrectCode(s));
    }
    static boolean isCorrectCode(String s) {
        Pattern p1 = Pattern.compile("1+");
        Matcher m1 = p1.matcher(s);
        Pattern p2 = Pattern.compile("0+");
        Matcher m2 = p2.matcher(s);
        Pattern p3 = Pattern.compile("(0-1)+");
        Matcher m3 = p3.matcher(s);
        Pattern p4 = Pattern.compile("(1-0)+");
        Matcher m4 = p4.matcher(s);
        if (m1.find() || m2.find() || m3.find() || m4.find() ) {
            return true;
        } else {
            return false;
        }
    }
}

Возникли некоторые проблемы: Как записать выражение в скобках: 1+ или ^1+$(то есть показать начало и конец текста, если я правильно это понимаю) Если записать так ^ $ во всех четырех выражениях, то программа неверная. Но все же кажется сама программа неверно написана


Ответы (0 шт):