Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours JAVA » Exercices JAVA »

Articles similaires

  • Exercice java programme de conversion majuscules minuscules
  • Exercice JAVA modularisation - erreurs fréquentes dans les méthodes
  • Exercice liste chainée générique JAVA - Structures de données abstraites
  • Exercice JAVA opérateur infixé et postfixé
  • Excel : convertir le texte en majuscules ou minuscules
  • Série d'exercices Java sur la programmation orienté objet POO
  • Exercices Java : Les boucles - somme des carrés - sondage - traingle
  • Exercice java programme affiche un sapin décoré de guirlandes
  • Word : Comment réparer trop d'espacement après justification de texte
  • Tutoriel comment ouvrir un fichier CSV avec Excel
  • Tutoriel Excel : supprimer les espaces dans les cellules
  • Java VS Python : Quel langage est le meilleur ?

Documents similaires

  • Cours pour commencer le JAVA

  • Application JAVA sur la gestion des magasins

  • Développons en Java avec Eclipse

  • Support pour débuter avec le langage JavaScript

  • Application java sur la gestion de personnel

  • Interface Java : interagir avec utilisateur

  • Mini projet calculatrice avec JAVA

  • Application JAVA sur la gestion de planning

Exercice JAVA palindrôme - string

Rédigé par GC Team, Publié le 17 Août 2010, Mise à jour le Lundi, 31 Août 2020 15:56
Participez au vote ☆☆☆☆☆★★★★★

 

But:

Un palindrôme est un mot que l'on peut lire dans les deux sens. Ecrivez un programme permettant de détecter des palindrômes.

Thème:

String


Un palindrome est un mot que l'on peut lire dans les deux sens. La distinction entre majuscules/minuscules n'a aucune importance pour la lecture d'un palindrome. Si on ne tient pas compte des espaces, des virgules, des tirets et des apostrophes (i.e. les caractères ' ', ',', '-' et '\''), une phrase complète peut aussi être considérée comme un palindrome. Exemples de palindromes:

Otto
Elu par cette crapule
Esope reste ici et se repose
Tu l'as trop ecrase, Cesar, ce Port-Salut
A man, a plan, a canal, Panama

Exemples de non-palindromes:

Cours de Java
Le pont de la rivière Kwai

Ecrivez un programme Palindrome.java qui lit une chaine de caractères du clavier et qui teste s'il s'agit d'un palindrome. Exemple d'exécution:

Entrez un mot ou une phrase : Otto                                     
C'est un palindrome !

Pour ce programme, il convient d'utiliser plusieurs méthodes prédéfinies de la classe String, comme par exemple charAt(), toLowerCase() et length().

  • chaine.toLowerCase() permet de convertir tous les caratères de chaine en minuscule.

 

Fichiers:

Nous utilisons ici le fait que si une chaine s est un palindrôme, la relation suivante est vérifiée pour tout i: s[i] = s[longeur de s - i]. L'algorithme procède alors comme suit: on parcourt la chaine dans les deux sens en même temps: l'indice p1 sert à parcourir la chaine du début à la fin et l'indice p2 sert à parcourir la chaine de la fin au début. On compare à chaque étape la chaine à l'indice p1 et l'indice p2.
Si c'est le même caractère on progresse, sinon le mot n'est pas un palindrôme. On prend soin, en cours de parcours, de sauter les séparateurs. On s'arrête autrement quand p1 et p2 se rejoignent. Le mot est alors un palindrôme.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import java.util.Scanner;
class Palindrome {
    private static Scanner scanner = new Scanner(System.in);

    public static void main (String args[]) {
        System.out.print("Entrez un original ou une phrase : ");
       String original = scanner.nextLine();

        // On convertit l'original en minuscules pour éviter
        // les problèmes de casse:
       String test = original.toLowerCase();

        // On ne garde que les caractères alphabétiques
       String allowedList = "abcdefghijklmnopqrstuvwxyz";
       String temp = "";
        for (int i = 0; i < test.length(); i++) {
            char c = test.charAt(i);
            if (allowedList.indexOf(c) != -1) {
                temp += c;
            }
        }
        test = temp;

        // On teste si mot2 est un palindrôme
        int leftPos = 0;
        int rightPos = test.length() - 1;
        boolean palindrome=true;
        while ((leftPos < rightPos) && palindrome) {
            if (test.charAt(leftPos) != test.charAt(rightPos)) {
                palindrome=false;
            }
            leftPos++;
            rightPos--;
        }

        if (palindrome) {
            System.out.println("C'est un palindrôme !");
        } else {
            System.out.println("Non, ce n'est pas un palindrôme.");
        }
    }
}

 

  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02