Gerador de senha Alfanúmerica

Pessoal boa noite, estou tentando pensar em como criar um programa que receba um nome (String) e com isso eu leia SOMENTE as consoantes do primeiro nome e as VOGAIS do ultimo nome, sendo que no nome terá que ser da ESQUERDA para DIREITA e o último nome é da DIREITA para ESQUERDA (de traz para frente).
No inicio deverá ter 4 letras (consoante e vogal juntas), seguido de um @ e em seguida 4 números aleatórios, e isso deve ser a saída como retorno. E a pergunta é, como fazer isso? Estou muito sem um rumo.

Dê uma olhada na classe String e nos métodos dela, como charAt, split e reverse. Para números aleatórios, use Random.

Tente alguma coisa e volte com dúvidas mais específicas.

Abraço.

Ok, eu consegui chegar em algo mais especifico, eu construi o programa e agora preciso ao receber as Strings, quebrar elas e ficar somente com as Consoantes primeiro e depois com as Vogais.
Como eu faço isso?