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.
publicstaticvoidmain(String[]args){Stringv1="ana";Stringv2="raul";if(newStringBuilder(v1).reverse().toString().equals(v1)){System.out.println("Valor 1 é Capicua!");}if(newStringBuilder(v2).reverse().toString().equals(v1)){System.out.println("Valor 2 é Capicua!");}}
Ou
publicstaticvoidmain(String[]args){StringBuildernomeReverse=newStringBuilder();Stringnome="ana";//String nome = "raul";char[]in=nome.toCharArray();for(inti=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);}}
peczenyj1 like
capiuca seria um… palindromo?
de qq forma, a string “ana”, se lido de traz pra frente, tem as mesmas letras né?
com o metodo length() vc descobre o tamanho da string.
com o metodo charAt( x ) vc pega o caracter na posição x ( começa em zero )
basta fazer um laço e comparar os chars
T
Tony_Balde
Podias fazer as instruções pfvr?
JulioCesarSF
O que você já conseguiu fazer?
publicclassTeste{publicstaticvoidmain(String[]args){Stringpalavra=newString("preguiça");StringpalavraReverso=newString();for(inti=palavra.length()-1;i>=0;i--){palavraReverso+=palavra.charAt(i);}System.out.println("original: "+palavra+" ; reverso: "+palavraReverso);if(palavraReverso.equals(palavra)){System.out.println("São iguais");}else{System.out.println("Não são iguais");}}}
A
Antonio_Balde
Fiz da seguinte forma e resultou:
/Teclado/
import java.util.Scanner;
public class Capicua {
publicstaticvoidmain(String[]args){Scannerteclado=newScanner(System.in);System.out.println("Insira a palavra: ");System.out.print("=> ");Stringpalavra=teclado.nextLine();if(newStringBuilder(palavra).reverse().toString().equals(palavra)){System.out.println("É capicua!");}else{System.err.println("Não é capicua!");}}
}
Muito obrigado.
mate
Seu exemplo está errado, o que vc descreveu são palíndromos
Capicua, é o número palíndromo, ou seja, um palíndromo formado apenas por números
Ex: 11211, 111, 45654…
Caso não acredite em mim, talvez a wikipédia o convença.
A
Antonio_Balde
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.
staroski1 like
Já teve gente no fórum com exatamente a mesma dúvida, que foi solucionada no seguinte post, veja: