Ciao mi sto perdendo in un bicchiere d'acqua..sto cercando di creare un programma che stampi solo le prime tre consonanti di un nome(solo se il numero delle consonati è >=3).

codice:
import java.util.*;
public class CodiceFiscale {
String nome;
String f;
CodiceFiscale (String h){
this.nome=h;
f="";
}
public boolean isVocale(char c){
boolean b=false;
if(c=='A'||c=='E'||c=='I'||c=='O'||c=='U'){
b=true;
}return b;
}
public int isConsonate(){
int count=0;
for(int pos=0;pos<cognome.length();pos++){
 if(!isVocale(cognome.charAt(pos))){
  f+=this.cognome.charAt(pos)+"\n";
  count++;
}
}
return count;
}
public String Consonate(){
return f;
}
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String j=sc.nextLine().toUpperCase();
CodiceFiscale c=new CodiceFiscale(j);
if(c.isConsonate()>=3){
System.out.println(c.Consonate().substring(0,4));
}
}
}
Ho pensato di usare substring per creare una sottostringa contente le prime 3 consonati..ma mi stampa solo le prime 2..perchè???