Palindromo

2 respostas
van_bommel

Salve , salve , ta certoo isso galera ?

import javax.swing.*;
    
    public class Palindromo {
    
    
    /*
    . Vc deve verificar todos os caracteres da String (se for número converta-o)
   Ex.: "anna" char a char do ínicio e do fim
   characterInicial = 0;
   characterFinal = "anna".length() - 1;
   
   2. Com o loop verifique se (characterInicial < characterFinal)
   
   while (characterInicial < characterFinal) {
   ....
   }
   
   3. Faça a verificação
   
   if ("anna".charAt(characterInicial) != "anna".charAt(characterFinal)) {
   return (false); // palavra não é palíndroma
   }
   characterInicial++;
   characterFinal--;
   
   4. Caso acabe o loop (return true), pois a palavra é palíndroma.
   */
       public static boolean palindromo ( String palavra ) {
         int cInicial = 0;
         int  cFinal = palavra.length() - 1;
         
         while ( cInicial < cFinal ) {
          
            if ( palavra.charAt(cInicial) != palavra.charAt(cFinal ) ) {
               return false ;
            
            }
            cInicial ++ ;
            cFinal -- ;
          
         }
      	 
         return true;
      	 
      
      }
      
   	
       public static void main ( String [ ] args ) {
      
         String palavra = JOptionPane.showInputDialog ( "insira a palavra " );
       
       
         if (  palindromo ( palavra ) == true ) {
         
            palavra = "A palvra é um palindromo\n"+ palavra ;
         
         }
         else {
         
            palavra = "A palvra não  é um palindromo\n"+ palavra ;
         
         
         }
         
      	
      	JOptionPane.showMessageDialog ( null," "+ palavra);
      
      
      }
   
   
   
   }

2 Respostas

L

Escreva um teste unitário para o método palindromo. No geral, se compilou, testou e funcionou está certo. Agora eu prefiro uma coisa mais ou menos assim:

StringUtils.isEmpty(StringUtils.difference(palavra,StringUtils.reverse(palavra))) ? System.out.println(“palindromo”) : System.out.println(“não é palindromo”);

De qualquer jeito, para deixar o codigo limpo troque o loop no index da string pelo uso do StringUtils:

StringUtils.difference(palavra,StringUtils.reverse(palavra))

Em termos de conhecimento é interessante voce olhar no código da classe StringUtils o que ele faz nestes métodos.

Paulo_Silveira

da pra usar apenas a api do java.lang!

boolean palindromo = palavra.equals(new StringBuilder(palavra).reverse().toString()));

Criado 17 de outubro de 2009
Ultima resposta 18 de out. de 2009
Respostas 2
Participantes 3