3.3 KiB
3.3 KiB
EXO-JAVA-Manipulation des chaînes de caractères
Objectif
Créer une application de traitement de texte permettant d'explorer et de maîtriser les différentes fonctionnalités de manipulation des chaînes de caractères en Java.
Prérequis
- Connaître les bases de la programmation orientée objet
- Comprendre les concepts de base des chaînes de caractères
- Avoir une bonne compréhension des collections Java
Énoncé
Partie 1 : Traitement de base des chaînes
- Créer une classe
TextProcessoravec les méthodes suivantes :
countWords(String text): Compte le nombre de mots dans un texte en gérant les espaces multiplescountOccurrences(String text, String word): Compte les occurrences d'un mot sans tenir compte de la cassereverse(String text): Inverse une chaîne à l'aide de StringBuilderremoveDuplicates(String text): Élimine les mots en double tout en conservant l'ordre d'apparitionextractWords(String text): Extrait tous les mots dans un tableau en gérant les espaces multiples
- Implémenter des méthodes de transformation :
toTitleCase(String text): Met en majuscule la première lettre de chaque mottoCamelCase(String text): Convertit un texte en camelCase (exemple : « hello world » → « helloWorld »)toSnakeCase(String text): Convertit un texte en snake_case (exemple : « hello world » → « hello_world »)compress(String text): Supprime les espaces multiples et les espaces en début et fin de texte
Partie 2 : Formatage avancé
- Créer une classe
TextFormatteravec les méthodes :
alignLeft(String text, int width): Aligne le texte à gauche sur une largeur spécifiéealignRight(String text, int width): Aligne le texte à droite sur une largeur spécifiéealignCenter(String text, int width): Centre le texte sur une largeur spécifiéecreateTable(List<String[]> data, int[] columnWidths): Génère un tableau formaté avec des colonnes de largeur définiewrapText(String text, int lineWidth): Adapte le texte à une largeur donnée en préservant l'intégrité des motsformatNumber(double number, String pattern): Formate un nombre selon un modèle (exemple : "%.2f")formatDate(Date date, String pattern): Formate une date selon un modèle (exemple : "dd/MM/yyyy")
- Implémenter des méthodes de mise en forme :
addBorders(String text): Encadre le texte avec des borduresaddNumbering(String text): Numérote les lignes du textehighlightWord(String text, String word): Souligne un mot spécifique dans le textecreateReport(Map<String, Object> data): Génère un rapport structuré à partir des données
Partie 3 : Analyse de texte
- Créer une classe
TextAnalyzeravec les méthodes suivantes :
getWordFrequency(String text): Calcule la fréquence d'apparition de chaque mot dans le textefindPalindromes(String text): Identifie tous les palindromes présents dans le textefindLongestWord(String text): Détermine le mot le plus long du textefindShortestWord(String text): Détermine le mot le plus court du texte
- Implémenter des méthodes d'analyse avancée :
findAnagrams(String text): Identifie et regroupe les anagrammes dans le texteextractSentences(String text): Divise le texte en phrases distinctes