« Salut Amigo ! »

"Mais, Bilaabo, tu m'as déjà dit bonjour."

« Vraiment ? Eh bien, j'aime toujours commencer chaque leçon avec cette phrase.

"Aujourd'hui, nous allons étudier en profondeur la classe String."

"Mais, je sais déjà tout à ce sujet. Je sais même que la classe String est immuable."

"La classe String a 46 méthodes. Combien en connaissez-vous ?"

« Pas plus de dix. En fait, probablement environ 5 max.

"Alors écoute."

"Les créateurs de Java ont remarqué que la plupart des chaînes dans les programmes ne sont pas destinées à être modifiées, mais parfois elles sont modifiées de toute façon. C'est très ennuyeux lorsque vous créez une chaîne, enregistrez quelque chose d'important dedans, la transmettez à la méthode de quelqu'un d'autre et elle est modifiée . Pour éviter que cela ne se produise, ils ont décidé de créer des chaînes mutables et immuables."

"La classe String est pour les chaînes immuables, et la classe StringBuilder est pour les chaînes modifiables. Les objets de ces classes sont facilement convertis en l'autre type. Dans la plupart des cas, les développeurs Java ont simplement besoin de String, ce qui prouve que les créateurs de Java avaient raison."

"Donc, si j'ai besoin d'une chaîne, j'utilise la classe String. Et si j'ai besoin d'une chaîne mutable, j'utilise la classe StringBuilder ?"

"Oui. En fait, il existe une autre classe appelée StringBuffer. C'est une copie de StringBuilder, sauf que toutes ses méthodes sont déclarées comme synchronized , de sorte que l'objet est accessible à partir de différents threads du programme."

« Et qu'en est-il de cet exemple ? La chaîne n'est-elle pas modifiée ici ?

String s = "cat";
s = s + "-" + s;

"Non. Il y a deux objets String ici : "cat" et "cat-cat". Le second est créé à partir du premier, mais le premier objet ne change pas. En réalité, les choses sont beaucoup plus intéressantes ici. Voici le code le compilateur génère lorsqu'il compile votre exemple :"

String s = "cat";
StrinsBuilder s2 = new StringBuilder(s);
s2.append("-");
s2.append(s);
s = s2.toString();

"Donc, StringBuilder est presque toujours utilisé pour créer de nouvelles chaînes, mais parfois le compilateur fait simplement tout le travail pour vous. Mais votre version est plus simple, vous ne pensez pas ?"

"Ouais, c'est génial que Java ait un compilateur aussi avancé."

"Eh bien, passons maintenant en revue les méthodes de la classe String :"

1) Comment puis-je trouver la longueur d'une chaîne ?

"La méthode length renvoie la longueur d'une chaîne (le nombre de caractères qu'elle contient)."

Méthode(s) Exemples)
int length();
String s = "Good news, everyone!";
int n = s.length();
int n = "Good news, everyone!".length();

2) Comment puis-je obtenir un caractère à partir d'une chaîne ?

"La méthode charAt renvoie un caractère d'une chaîne par son index. Les indices de caractères commencent à 0.

Méthode(s) Exemples)
char charAt(int index)
String s = "Good news, everyone!";
char n = s.charAt(5);
char n = "Good news, everyone!".charAt(5);

3) Comment puis-je obtenir des caractères à partir d'une chaîne ?

Comment puis-je obtenir des caractères à partir d'une chaîne ?

Méthode(s) Exemples)
char[]toCharArray ()
String s = "Good news, everyone!";
for(char c: s.toCharArray())
{
System.out.println(c);
}

4) Comment comparer les chaînes ?

"La méthode equals vérifie si les chaînes correspondent et la méthode equalsIgnoreCase vérifie si les chaînes correspondent lorsque la casse est ignorée.

Méthode(s) Méthode(s)
boolean equals(Object o)
String s = "cat";
boolean test1 = s.equals("cat");//true
boolean test2 = s.equals("Cat");//false
boolean test3 = s.equals("c"+"a"+"t");//true
boolean equalsIgnoreCase(String str)
String s = "cat";
boolean test1 = s.equalsIgnoreCase("cat");//true
boolean test2 = s.equalsIgnoreCase("Cat");//true
boolean test3 = s.equalsIgnoreCase("cAT");//true

5) Comment puis-je mettre toutes les lettres d'une chaîne en majuscules ou en minuscules ?

"La méthode toUpperCase renvoie une copie de la chaîne avec toutes les lettres majuscules."

"La méthode toLowerCase renvoie une copie de la chaîne avec toutes les lettres minuscules."

Méthode(s) Exemples)
String toUpperCase()
String s = " Good news, everyone!  ";
s = s.toUpperCase();

Résultat:

s == "GOOD NEWS, EVERYONE!";
String toLowerCase()
String s = "Good news, everyone!";
s = s.toLowerCase();

Résultat:

s == "good news, everyone!";

6) Comment supprimer les espaces au début et à la fin d'une chaîne ?

"La méthode trim renvoie une copie d'une chaîne sans caractères d'espacement au début et à la fin."

Méthode(s) Exemples)
String trim()
String s = "   Good news, everyone!   ";
s = s.trim();

Résultat:

s == "Good news, everyone!";