java字符串判断问题

小明对类似于o这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组
成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,
组成
第四段由一个或多个元音字
给定一个单词,请判断这个单词是否也是这种单词,如果是请输出yes,否则请输出o。
元音字母包括a,e,i,o,u,共五个,其他均为辅音字母。
输入
输入一行,包含个单词,单词中只包含小写英文字母
输出
输出答案,或者为yes,或者为no。

小明对类似于o这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组
成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,
组成
第四段由一个或多个元音字
====看不大懂啊,有测试用例么
是指单词里有两段元音字符组,两段辅音字符组?

public class Test{
    public static int yi(char ch)
    {
        if(ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' )
            return 1;
        return 0;
    }
    public static void main(String []args) {
        Scanner sc = new Scanner(System.in);
           String s = sc.nextline();
        int len = s.length();
        if(yi(s.charAt(0)) ==1 || yi(s.charAt(len-1)) == 0)
           System.out.println("no");
        else
        {
            int n = 0;
            for(int i=1;i<len;i++)
            {
                if(yi(s.charAt(i)) != yi(s.charAt(i-1)))
                      n++;
            }
            if(n==3)
                System.out.println("yes");
            else
                System.out.println("no");
        }
    }
}

下面是详细代码实现,望采纳

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
    public static void main(String[] args) {
        // 使用Scanner类读入单词
        Scanner scanner = new Scanner(System.in);
        String word = scanner.next();

        // 定义正则表达式
        String regex = "^[bcdfghjklmnpqrstvwxyz]+[aeiou]+[bcdfghjklmnpqrstvwxyz]+[aeiou]+$";

        // 创建Pattern对象
        Pattern pattern = Pattern.compile(regex);

        // 创建Matcher对象
        Matcher matcher = pattern.matcher(word);

        // 判断是否匹配成功
        if (matcher.matches()) {
            System.out.println("yes");
        } else {
            System.out.println("no");
        }
    }
}