teste si une phrase est un palindrome en java
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

teste si une phrase est un palindrome en java



  1. #1
    narakphysics

    Exclamation teste si une phrase est un palindrome en java


    ------

    bonjour tout le monde;
    le programme ci-dessus concerne le test si une phrase est un palindrome en langage java .je l'ai exécuté dans netbeans mais il m'affiche des erreurs.j'arrive pas à les détecter.
    s'il vous plait quelqu'un peut m'aider pour trouver où sont les erreurs.

    merci d'avance

    le programme:
    Code:
    import java.util.Scanner;
     class palindrom{
    
        public palindrom(String s){
               char[] tab = s.toCharArray();
        }
        public void isPalindrome (char tab[],String s){
            int x=0;
            int y=s.length-1;
            while (y>x && tab[x]==tab[y]){
                x++;
                if (tab[x]==''){
                 x++;
                }
               y--;
                if (tab[y]==''){
                 y--;
                }
            }
            if (y<=x)
                System.out.println("votre chaine est palindrome");
            else
                System.out.println("votre chaine n'est pas palindrome");
        }
    
    }
    public  class palindrome {
        public static void main (String argv []){
        Scanner sc=new Scanner(System.in);
        String s=sc.nextLine();
        System.out.println("la chaine de caractére que vous avez introduit est:"+s);
        char[] tab = s.toCharArray();
        palindrom m=new palindrom(s);
        m.isPalindrome (tab,s);
        }
    }

    -----
    Dernière modification par Jack ; 20/03/2011 à 10h57. Motif: c'est quand même plus présentable avec les balises "code"

  2. #2
    invite31b33efc

    Re : teste si une phrase est un palindrome en java

    Salut à toi !
    Tu avais en effet quelques erreurs que je me suis permis de corriger ^^
    Pour commencer j'ai déclaré le tableau de char et la chaine de caractère à tester. Ceci sera beaucoup plus pratique pour la suite !
    Ensuite j'ai enlevé les espaces de la chaine de caractère car un palindrome ne s'en occupe pas.
    Du coup la comparaison est plus simple !

    Voici mon code corrigé et fonctionnel

    Code:
    import java.util.Scanner;
    
    public class palindrom{
           public char[] tab;
           public String p; 
        public palindrom(String s){
            p =s.replaceAll(" ","");
            tab = p.toCharArray();
        }
        public void isPalindrome (){
            int x = 0;
            int y =p.length()-1;
            while (y>x && tab[x]==tab[y]){
                x++;
                y--;
            }
            if (y<=x)
            System.out.println("votre chaine est palindrome");
            else
            System.out.println("votre chaine n'est pas palindrome");
        }
        public static void main (String argv []){
            Scanner sc = new Scanner(System.in);
            System.out.println("Veuillez saisir le palindrome à tester :");
            String str = sc.nextLine();
            System.out.println("Vous avez saisi : " + str);
            palindrom m=new palindrom(str);
            m.isPalindrome();
        }
    
    }
    Si tu as quelques questions ...
    A plus !

  3. #3
    narakphysics

    Re : teste si une phrase est un palindrome en java

    merci beaucoup Yopisis

  4. #4
    whoami

    Re : teste si une phrase est un palindrome en java

    Bonjour,

    C'est un peu plus compliqué que ça, car, si on ne tient effectivement pas compte des espaces, on ne tient pas compte non plus de :
    - casse (majuscule/minuscule)
    - caractères diacritiques (accents, cédille, ...)
    - caractères spéciaux (ponctuation, ...)


  5. A voir en vidéo sur Futura
  6. #5
    invite31b33efc

    Re : teste si une phrase est un palindrome en java

    +1 pour whoami

    C'est vrai... pour bien faire, il faudrai faire pas mal de teste dans ta chaine...
    Ceci dit, je ne pense pas que ca soit le but de l'exercice ^^

  7. #6
    whoami

    Re : teste si une phrase est un palindrome en java

    Bonjour,
    Citation Envoyé par Yopisis Voir le message
    +1 pour whoami

    C'est vrai... pour bien faire, il faudrai faire pas mal de teste dans ta chaine...
    Ceci dit, je ne pense pas que ca soit le but de l'exercice ^^
    Probablement, mais alors pourquoi tester les espaces ?

  8. #7
    invite31b33efc

    Re : teste si une phrase est un palindrome en java

    Parce que ça simplifie vraiment la vie:
    Les espaces peuvent être placés à peut près n'importe où dans la chaine.
    Exemple: "esope reste ici et se repose"
    Si on compare le dernier caractère avec le premier et que l'on progresse ainsi jusqu'au milieu de la chaine, on aura des caractères comparés avec des espaces.

    Je ne dis pas que c'est la meilleure solution mais c'est celle-ci qui m'est venue à l'idée en première ^^

  9. #8
    whoami

    Re : teste si une phrase est un palindrome en java

    Bonjour,

    Je comprends bien ta démarche, mais le problème est que tu t'es arrêté en chemin.

    Soit on traite tous les caractères dont on ne tient pas compte pour accepter un palindrome, soit on n'en traite aucun.

  10. #9
    invite19415392

    Re : teste si une phrase est un palindrome en java

    Il y a plus simple : virer tous les espaces, retourner la chaine (dans une nouvelle string), et utiliser un Collator (en Primary).

  11. #10
    whoami

    Re : teste si une phrase est un palindrome en java

    Bonjour,
    Citation Envoyé par Baygon_Jaune Voir le message
    Il y a plus simple : virer tous les espaces, retourner la chaine (dans une nouvelle string), et utiliser un Collator (en Primary).
    Et on retombe dans le même problème : pourquoi les espaces et pas les autres caractères dont on ne tient pas compte pour décider si on a affaire à un palindrome.

    D'autre part, ce n'est pas plus simple, et avec un inconvénient ajouté : c'est plus long.

  12. #11
    invitec1f52e43

    Thumbs up Re : teste si une phrase est un palindrome en java

    bein voila les gars je vous propose un programme beaucoup plus simple:

    Code:
    package essai;
    
    import java.util.Scanner;
    
    public class Palindrome 
    
    {
    public static void main(String G[])
    
        {
    	Scanner x=new Scanner(System.in);
    	
    	System.out.println("Entrez le mot");
    	String t=x.next();
    	
    	  
    	  
    	  char[] tab; //déclaration
    	  
    	  tab=t.toCharArray(); //acces contenu tableau 
    	 
      
    	  int c=t.length()-1;
    	  
    	int i=0;
    	int j=c;
    	
    
    		  
    	    {
    		  i++;
    		  j--;
    	    }
    	    
    	  if ((i<=j)&&(tab[i]==tab[j]))
    		  
    		  System.out.println("le mot:"+t+" est un palindrome");
    	  else
    		  System.out.println(" le mot:"+t+" n'est pas un palindrome");
        }
    }
    Dernière modification par JPL ; 04/06/2011 à 14h08. Motif: Ajout de la balise Code

Discussions similaires

  1. un thyristor se teste t-il en l'air ou en circuit? est
    Par invite730217c3 dans le forum Électronique
    Réponses: 6
    Dernier message: 14/10/2010, 20h41
  2. teste continuité+teste court-circuit
    Par invitecfa81b76 dans le forum Électronique
    Réponses: 7
    Dernier message: 15/05/2010, 11h01
  3. Traduire une expression par une phrase
    Par inviteb6719a11 dans le forum Mathématiques du collège et du lycée
    Réponses: 1
    Dernier message: 01/02/2009, 18h36
  4. Une phrase que je ne comprends pas
    Par invite905bdee5 dans le forum Archives
    Réponses: 9
    Dernier message: 02/04/2006, 15h28
  5. Une phrase de Hawking
    Par invite0781c82b dans le forum Physique
    Réponses: 8
    Dernier message: 11/01/2005, 21h51