Parcours
/
Java
Java
/
Exercices
/
Propre comme un sou neuf
Propre comme un sou neuf

Propre comme un sou neuf

Exercice d'apprentissage

Introduction

Les char

Les char

Le type primitif char de Java est une représentation sur 16 bits d'un seul caractère. Plusieurs char peuvent constituer une string, comme "word", ou bien les char peuvent être traités indépendamment. Un littéral char est entouré de guillemets simples (par exemple 'A').

char lowerA = 'a';
char upperB = 'B';

Obtiens les char d'une String

La méthode String.toCharArray renvoie les char d'une string sous forme de tableau. Comme mentionné dans la partie sur les tableaux, on peut utiliser une boucle for pour parcourir le tableau.

String text = "Hello";
char[] asArray = text.toCharArray();

for (char ch: asArray) {
    System.out.println(ch);
}

// Outputs:
// H
// e
// l
// l
// o

La classe Character

Il existe de nombreuses méthodes intégrées à la bibliothèque pour inspecter et manipuler des char. On les trouve sous forme de méthodes statiques de la classe java.lang.Character. Voici quelques exemples :

Character.isWhitespace(' ');    // true
Character.isWhitespace('#');    // false

Character.isLetter('a');        // true
Character.isLetter('3');        // false

Character.isDigit('6');         // true
Character.isDigit('?');         // false

Ajoute un char à une String

L'opérateur + peut servir à ajouter un char à une string.

'a' + " banana"     // => "a banana"
"banana " + 'a'     // => "banana a"
Caution

Fais bien attention à ne pas utiliser + pour joindre deux char afin de former une string ! Additionner deux char de cette façon donne un int, pas une string ! Par exemple :

'b' + 'c';
// => 197 (not the String "bc")

En effet, Java promeut le char en int (voir 4.2 Primitive Types and Values de la Java Language Specification).

Cependant, lorsqu'il y a beaucoup de caractères à ajouter, il peut être plus efficace d'utiliser un StringBuilder à la place :

StringBuilder builder = new StringBuilder();
builder.append('a');
builder.append('b');
builder.append('c');

String builtString = builder.toString();
// => abc

Instructions

Dans cet exercice, tu vas implémenter un ensemble partiel de routines utilitaires pour aider un développeur à nettoyer des noms SqueakyClean.

Au fil des 4 tâches, tu vas construire progressivement la méthode clean. Un nom SqueakyClean valide est composé de zéro ou plusieurs lettres et tirets bas.

Dans tous les cas, la string en entrée est garantie non nulle. Note que la méthode clean doit considérer une string vide comme valide.

1. Remplace tous les espaces rencontrés par des tirets bas

Implémente la méthode (static) SqueakyClean.clean() pour remplacer les espaces par des tirets bas. Cela vaut aussi pour les espaces en début et en fin de chaîne.

SqueakyClean.clean("my   Id");
// => "my___Id"

2. Convertis le kebab-case en camelCase

Modifie la méthode (static) SqueakyClean.clean() pour convertir le kebab-case en camelCase.

SqueakyClean.clean("a-bc");
// => "aBc"

3. Convertis le leetspeak en texte normal

Modifie la méthode (static) SqueakyClean.clean() pour convertir le leetspeak en texte normal.

Pour simplifier, on ne remplacera que 4, 3, 0, 1 et 7 par a, e, o, l et t, respectivement.

SqueakyClean.clean("H3ll0 W0rld");
// => "Hello_World"
SqueakyClean.clean("4 73s7");
// => "a_test"

4. Omets les caractères qui ne sont pas des lettres

Modifie la méthode (static) SqueakyClean.clean() pour omettre tous les caractères qui ne sont pas des lettres.

SqueakyClean.clean("a$#.b");
// => "ab"
Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet
Java Exercism

Prêt à commencer Propre comme un sou neuf ?

Inscris-toi sur Exercism pour apprendre et maîtriser Java avec 26 concepts158 exercices, et un vrai mentorat humain, le tout gratuitement.