segunda-feira, 18 de julho de 2011

Verificar se a palavra é PALÍNDROMO em java

Ta, mas o que é um Palindromo??


Palíndromos são frases ou palavras que podem ser lidas da esquerda para a direita e da direita para a esquerda onde encontramos o mesmo resultado, exemplo disso é a palavra ARARA!


Clique aqui para mais informações sobre palíndromos.



Segue o algoritmo:

public class palavraPalindromo {
public static void main(String[] args) {
String palavra = "ARARA";
String resultado="";
for(int x=palavra.length()-1;x>=0;x--){
resultado+= palavra.charAt(x);
}
if(resultado.equals(palavra)){
System.out.println("A palavra "+palavra+ " é um PALINDROMO");
}else{
System.out.println("A palavra "+palavra+ " NÃO é um PALINDROMO");;
}
}
}

Primeiramente pegamos a palavra, invertemos ela e atribuimos a palavra invertida a variavel resultado, depois disso verificamos se a palavra resultado é igual a palavra que foi passada como parametro. Utilizando o metodo:
if(resultado.equals(palavra))
que retorna verdadeiro se as 2 palavras forem iguais.



Duvidas comentem!

10 comentários:

  1. e se fosse uma frase inteira?
    a cara rajada da jararaca

    ResponderExcluir
    Respostas
    1. acho que para uma frase complica um pouco, mas da pra retirar os espaços e verificar, algo mais ou menos assim:


      String frase = "a cara rajada da jararaca";
      frase = frase.replaceAll(" ", "");
      String resultado="";
      for(int x=frase.length()-1;x>=0;x--){
      resultado+= frase.charAt(x);
      }

      if(resultado.equals(frase)){
      System.out.println("A frase "+frase+ " é um PALINDROMO");
      }else{
      System.out.println("A frase "+frase+ " NÃO é um PALINDROMO");;
      }

      Excluir
    2. Desculpa pela pergunta boba, mas qual seria o objetivo do "-1" depois da função length()?

      Excluir
  2. ta e como eu fasso distinguir c a palavra e um palindromo perfeito ou imperfeito..?qual regrinha eu uso.

    ResponderExcluir
    Respostas
    1. — Quanto à estética: palíndromos perfeitos e imperfeitos:

      Palíndromos perfeitos: são aqueles criados com obediência às regras gramaticais e de sintaxe, nos quais os sinais ortográficos (diacríticos ou de pontuação) não oscilam de posição. O TEU DRAMA É AMAR DUETO; O TENRO PRAZER É REZAR POR NETO. Observe que o acento agudo nas leituras direta ou vice-versa incide sempre na mesma letra.

      Palíndromos imperfeitos: são aqueles que, não obstante produzidos com respeito às referidas regras, a manutenção dos sinais na mesma letra não é respeitada e podem até desaparecer. SÓ COM O TIO SOMÁVAMOS OITO MOÇOS. Neste exemplo, o acento agudo da palavra "SÓ" não existe na parte inversa. O de "SOMÁVAMOS" muda de posição quando se lê da direita para esquerda. Ao mesmo tempo, o "C-CECIDILHA", que consta na parte inversa, não aparece na direta. -

      fonte:
      http://palindromagia.blogspot.com.br/2014/04/assim-sao-os-palindromos_4.html

      Excluir
  3. no caso de haver maiusculas na frase faz com que altere o resultado final! como posso acrescentar no codigo para que fiquem todas minusculas?

    String texto = "";
    String textoinvertido = "";
    String textosemespacos = "";

    Scanner s = new Scanner(System.in);
    texto = s.nextLine();

    textosemespacos = texto.replace(" ","");


    for(int i=textosemespacos.length()-1; i>=0; i--){

    textoinvertido += textosemespacos.charAt(i);
    }

    if(textoinvertido.equals(textosemespacos))
    System.out.println("É Palíndromo");
    else
    System.out.println("Não é Palíndromo");
    }
    }

    ResponderExcluir
    Respostas
    1. texto = texto.toUpperCase();
      deixa todo o texto em maisculo
      ou
      texto = texto.toLowerCase();
      deixa em minusculo

      Excluir
  4. Este comentário foi removido pelo autor.

    ResponderExcluir
  5. public static boolean isPalindromo(String palavra){
    StringBuilder param = new StringBuilder();
    StringBuilder paramInv = new StringBuilder();
    param.append(palavra);
    paramInv.append(param.reverse());
    return param.toString().equalsIgnoreCase(palavra.toString());
    }

    ResponderExcluir