Così dovrebbe essere più corretto, ora come calcolo la percentuale?
codice:
package frase;
import java.util.Scanner;
public class frase {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  @SuppressWarnings("resource")
  Scanner in=new Scanner(System.in);
  String frase=new String();
  System.out.println("Inserisci una frase");
  frase=in.nextLine();
  int contspazi=0,contvocali=0,contconsonanti=0;
  for(int i=0; i<frase.length();i++)
  {
   frase.charAt(i);
   if (i== ' ')
   {
    contspazi++;
   }
   if((i=='a') || (i=='e') || (i=='i') || (i=='o') || (i=='u'))
   {
    contvocali++;
   }
   if((i=='b') || (i=='c') || (i=='d') || (i=='f') || (i=='g') || (i=='h') || (i=='l') || (i=='m') || (i=='n') || (i=='p') || (i=='q') || (i=='r') || (i=='s') || (i=='t') || (i=='v') || (i=='z'))
   {
    contconsonanti++;
   }
  }
 }
}