java遇到的关于非法输入判断问题

要求:
输入一个字符串
格式必须是一共28个由Y,N组成的,每七个间有且只能有一个空格,否则则判断为非法输入。


public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        Pattern pattern = Pattern.compile("^[YN]{7}[ ][YN]{7}[ ][YN]{7}[ ][YN]{7}$");
        String next = input.nextLine();
        Matcher matcher = pattern.matcher(next);
        if (matcher.matches()) {
            System.out.println("符合");
        } else {
            System.out.println("不符合");
        }
    }

可以使用正则表达式来解决这个问题。

额,这个你试下呢,我也不是特别懂

 String reg ="^[Y,N]{7,}(\\s)[Y,N]{7,}(\\s)[Y,N]{7,}(\\s)[Y,N]{7,}$";
        Pattern pattern = Pattern.compile(reg);
        String str = "YYYYYYY YYYYYYY YYYYYYY YYYYYYY";
        Matcher matcher = pattern.matcher(str);
        if (matcher.find()) {
            System.out.println(1);
        }else {
            System.out.println(0);
        }