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).
Ho pensato di usare substring per creare una sottostringa contente le prime 3 consonati..ma mi stampa solo le prime 2..perchè???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)); } } }![]()