Processing (et donc Java), nous donne un grand nombre d'outils permettant de travailler sur des chaînes de caractères.
Les chaînes de caractères sont des instances de la classe String. Cette classe possède un grand nombre de méthodes, nous allons commencer par voir les plus courantes :
Il est fondamental de bien comprendre qu'une chaîne de caractères se manipule comme un tableau : le premier caractère d'une chaîne a l'indice 0, le deuxième caractère à l'indice 1,....
Il est possible de connaitre le nombre de caractères présents dans une chaîne à l'aide de la méthode length.
Saisissez, analysez et testez ce code
String msg="Bonjour le monde !";
int nb=msg.length();
println("La chaîne '"+msg+"' est constituée de "+nb+" caractères");
Attention : comme vous pouvez le constater, le caractère "espace" est comptabilisé.
La méthode charAt retourne le caractère situé à l'index qui a été passé en paramètre :
Saisissez, analysez et testez ce code
String msg="Bonjour le monde !";
int i=3;
char l=msg.charAt(i);
println("Le "+(i+1)+"e caractère de la chaîne '"+msg+"' est un "+l);
Attention : une fois de plus, le premier caractère a pour indice 0, donc, l'indice 3 correspond bien au 4e caractère.
Pour comparer 2 chaînes de caractères, il est nécessaire d'utiliser la méthode "equals" (le classique "==" ne fonctionnera pas). La méthode renvoie true si les 2 chaînes sont identiques.
Saisissez, analysez et testez ce code
String msg1="Bonjour le monde !";
String msg2="Bonjour le monde";
if (msg1.equals(msg2)){
println("les chaînes sont identiques");
}
else {
println("les chaînes sont différentes");
}
La méthode toUpperCase permet de convertir tous les caractères d'une chaîne en majuscules. La méthode toLowerCase permet de convertir tous les caractères d'une chaîne en minuscules.
Saisissez, analysez et testez ce code
String msg="Bonjour le monde !";
println ("Tous les caractères sont en minuscule : "+msg.toLowerCase());
println ("Tous les caractères sont en majuscule : "+msg.toUpperCase());
La méthode substring permet de retourner une partie d'une chaîne de caractères. Elle peut prendre un ou deux paramètres :
maChaine.substring(index_deb);
ou
maChaine.substring(index_deb, index_fin);
Si "index_fin" n'est pas précisé, la méthode retourne une chaîne composée des caractères situés entre "index_deb" et la fin de la chaîne. Si "index_fin" est renseigné, la méthode retourne une chaîne composée des caractères situés entre "index_deb" et "index_fin".
Saisissez, analysez et testez ce code
String msg="Bonjour le monde !";
int i=10;
println ("Caractères à partir de l'index "+i+ " jusqu'à la fin de la chaîne : "+msg.substring(i));
i = 0;
int j=7;
println ("Caractères de l'indice "+i+" à l'indice "+str(j-1)+" : "+msg.substring(i,j));
Attention : comme vous pouvez le constater le caractère situé à l'indice "index_fin" est exclu.
La méthode indexOf permet de recherche un motif de caractères (une suite de caractères) dans une chaîne. Si ce motif est trouvé, la méthode indexOf renvoie l'indice de position du premier caractère du motif.
Saisissez, analysez et testez ce code
String msg="Bonjour le monde !";
String motif="jour";
int i=msg.indexOf(motif);
println("le début du motif '"+motif+"' se situe à l'index "+i);
Écrivez un programme qui permettra de donner l'indice de position du motif "on".
Comme vous l'avez peut-être remarqué, le motif "on" est présent à 2 endroits (dans "bonjour" et dans "monde"). La méthode indexOf renvoie l'indice de position du premier motif rencontré, le second est ignoré.
Écrivez un programme qui vous permettra de répondre à la question suivante : que renvoie la méthode indexOf dans le cas où le motif recherché n'est pas présent dans la chaîne ?