Olá pessoal. estou a fazer um trabalho para a cadeira de programação, mas estou encalhado num dos problemas
O programa é suposto ler uma frase (string) e analisar cada palavra e ver se é equilibrada (uma palavra equilibrada é uma palavra que alterna vogais e consoantes, tal como a palavra banana. a palavra estado nao é equilibrada porque tem duas consoantes consecutivas.)
Ora o código que eu tenho
O problema está no output, que repete a primeira palavra equilibrada até encontrar a proxima palavra equilibrada.
Exemplo:
<input>
hoje esta um dia fantastico cheio de sol
e o <output> desejado seria:
hoje um de sol
e o <output> formado por esse codigo é este:
hoje hoje um um um um de sol
se me conseguirem ajudar, agradecia imenso
O programa é suposto ler uma frase (string) e analisar cada palavra e ver se é equilibrada (uma palavra equilibrada é uma palavra que alterna vogais e consoantes, tal como a palavra banana. a palavra estado nao é equilibrada porque tem duas consoantes consecutivas.)
Ora o código que eu tenho
Código:
import java.util.Scanner;
public class PalavrasEquilibradas {
public static boolean tipoLetra (char letra){
return(letra== 'a' ||letra== 'e' ||letra== 'i' ||letra== 'o' ||letra== 'u');
}
public static boolean Equilibrado (String word){
word.toLowerCase();
for(int index=0, j=1; index<word.length()&& j<word.length(); index++, j++ ){
if (tipoLetra(word.charAt(index))==(tipoLetra(word.charAt(j)))) return false;
}
return true;
}
public static void main (String [] args){
String frase, fraseFinal="";
int i=0, f;
Scanner input=new Scanner(System.in);
System.out.print ("Insira a frase: ");
frase=input.nextLine();
while (i<frase.length()){
f=frase.indexOf(" ",i);
if (f==-1){
f=frase.length();
}
if (Equilibrado(frase.substring(i,f)))fraseFinal=frase.substring(i,f)+" ";
i=f+1;
System.out.print(fraseFinal);
}
}
}
O problema está no output, que repete a primeira palavra equilibrada até encontrar a proxima palavra equilibrada.
Exemplo:
<input>
hoje esta um dia fantastico cheio de sol
e o <output> desejado seria:
hoje um de sol
e o <output> formado por esse codigo é este:
hoje hoje um um um um de sol
se me conseguirem ajudar, agradecia imenso
Última edição: