Ola pessoal, sou iniciante em java e não estou a conseguir resolver esse exercicio, podiam me ajudar?
Escreva o programa Capicua, o qual testa se uma palavra, introduzida pelo utilizador é ou não uma
capicua. Exemplos: “ana”, “ele”, “matam”, “ovo”, “radar”, “e”, “rapar”, “osso”, “reviver”, “socos”.
Você pode usar o metodo reverse do StringBuilder ou fazer um for sobre os caracter’s. Vou colocar as duas formas e você adequa conforme a necessidade. Obs. não fazia a minima ideia o que era Capicua. Espero que te atende.
public static void main(String[] args) {
String v1 = "ana";
String v2 = "raul";
if(new StringBuilder(v1).reverse().toString().equals(v1)){
System.out.println("Valor 1 é Capicua!");
}
if(new StringBuilder(v2).reverse().toString().equals(v1)){
System.out.println("Valor 2 é Capicua!");
}
}
Ou
public static void main(String[] args){
StringBuilder nomeReverse = new StringBuilder();
String nome = "ana";
//String nome = "raul";
char[] in = nome.toCharArray();
for (int i = in.length-1; i >= 0; i--) {
nomeReverse.append(in[i]);
}
if(nomeReverse.toString().equals(nome)){
System.out.println("Este nome é Capicua! "+nome);
}else{
System.out.println("Não é capicua! "+nome);
}
}
Talvez a descrição do programa esteja errada. Segundo a wikipédia "...cujo reverso é ele próprio."
É o que eu precisava, mas funciona também com palavras
Origado.