Q:

Array String lee frase y luego se cuentas vocales y consonantes de cada palabra

Estoy atascado, me piden un programa:
Este almacena una frase, esta frase se guarda en un array String.
Y luego se debe coger cada palabra por separado y contar de cada vocales y consonantes, si la palabra tiene mas vocales el programa imprimira esa palabra y dara aviso.
Ejemplo de salida:
Entramos Maria nos mira.

El programa devolvera, tu primera palabra maria tiene mas vocales que consonantes.
He hecho la primera parte pero no soy capaz de juntar la parte de array con contar vocales de un String con el metodo charAt
import java.util.Scanner;

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author cbermejo
 */

public class Prueba3 {
    private String palabra1="";
    private String palabra2="";
    private String palabra3="";
    private String palabra4="";
    private String []texto = null;
    Scanner scan = new Scanner (System.in);
    public static void main (String []args){

    Prueba3 programa = new Prueba3 ();
    programa.inici();
}

private void inici(){
    mida();
    arrayIntro();
    Imprimir();

}
private void mida() {

    System.out.println("Dime la medida:");
    int mida = scan.nextInt();
    texto = new String[mida];

}

private void arrayIntro(){

    for ( int i=0; i<texto.length; i++){

        texto [i]= scan.next();

    }

}
private void Imprimir(){
    int contador=0;
    int contador2 =0;
    for ( int i=0; i<texto.length;i++){
        //if(texto[i]==texto[0]){

        if ((texto[i].charAt(i)=='a')|| (texto[i].charAt(i)=='e')||(texto[i].charAt(i)=='i')||(texto[i].charAt(i)=='o')||(texto[i].charAt(i)=='u')){
            contador++;
        }else{
            contador2++;
        }

    }

     System.out.println(contador);
    System.out.println(contador2);   
    }

}

A:

Una posible solución a tu problema seria, teniendo la lista de palabras de la frase en texto[], recorrer dicho array y por cada palabra recorrer sus caracteres e ir comparando si es vocal o consonantes. Obviamente para cada palabra se debe ver si hay mas vocales o mas consonantes (o igual, dado el caso) y una vez comparado reiniciar los contadores de vocales y consonantes (contadorVocalesy contadorConsonantes)
Aquí te dejo mi solución, espero te sirva:
import java.util.Scanner;

public class Prueba3 {
    private String[] texto = null;
    Scanner          scan  = new Scanner(System.in);

    public static void main(String[] args) {

        Prueba3 programa = new Prueba3 ();
        programa.inici();
    }

    private void inici() {
        mida();
        arrayIntro();
        Imprimir();

    }

    private void mida() {

        System.out.println("Dime la medida:");
        int mida = scan.nextInt();
        texto = new String[mida];

    }

    private void arrayIntro() {

        for (int i = 0; i < texto.length; i++) {

            texto[i] = scan.next();

        }

    }

    private void Imprimir() {
        int contadorVocales = 0;
        int contadorConsonantes = 0;
        for (int i = 0; i < texto.length; i++) {
            String palabra = texto[i];

            for (int j = 0; j < palabra.length(); j++) {
                if ((palabra.charAt(j) == 'a') || (palabra.charAt(j) == 'e') || (palabra.charAt(j) == 'i')
                    || (palabra.charAt(j) == 'o') || (palabra.charAt(j) == 'u') || (palabra.charAt(j) == 'A')
                    || (palabra.charAt(j) == 'E') || (palabra.charAt(j) == 'i') || (palabra.charAt(j) == 'O')
                    || (palabra.charAt(j) == 'U')) {
                    contadorVocales++;
                } else {
                    contadorConsonantes++;
                }
            }

            if(contadorVocales > contadorConsonantes){
                System.out.println("La palabra " + palabra + " contiene mas vocales que consonantes");
            } else if(contadorConsonantes > contadorVocales){
                System.out.println("La palabra " + palabra + " contiene mas consonantes que vocales");
            } else {
                System.out.println("La palabra " + palabra + " contiene las mismas vocales que consonantes");
            }

            contadorVocales = 0;
            contadorConsonantes = 0;
        }
    }

}

Este código podría mejorarse incluso introduciendo la frase entera y después almacenandolo en el array usando el método trim(): texto = frase.trim(). Pero he preferido respetar tu código lo máximo posible. Si lo quieres dímelo. 

