I am not able to understand what exactly you want to do with 'y' so have counted them seperately. It is necessary to first remove all the non-word characters from the input.

I have modified your code (though haven't optimized):

System.out.print("Enter a string: ");
String origphrase = new Scanner(System.in).nextLine();
String phrase = origphrase.replaceAll("\\W","");
int i, length, vowels = 0;
int consonants = 0;
int ys=0;
String j;

length = phrase.length();
for (i = 0; i &lt; length; i++)
{
  j = "" + phrase.charAt(i);
  boolean isAVowel = "aeiou".contains(j.toLowerCase());
  boolean y = "y".contains(j.toLowerCase());
  if(isAVowel){
    vowels++;
  }else if(y){
    ys++;
  }else{
    consonants++;
  }
}

System.out.println("Phrase:"+origphrase);
System.out.println("Vowels:"+vowels);
System.out.println("Consonants:"+consonants);
System.out.println("Y's:"+ys);


Counting vowels with consonants
Simple question with perhaps a difficult answer: which champion (in league of legends) can have the highest maximum health with a full build, and what would that build need to be to achieve this?

I would guess the champion would have to be Alistar with a base maximum health of 2278 at lv18

And if we stacked up with 6x Warmog's Armor, we would have 6*1000+2278 = 8278. But is there any way to go higher than that? Maybe with masteries and runes? What would the final maximum health be?
