Chaînes de caractères Table des matières Qu'est-ce qu'une chaîne de caractères...2 Création et initialisation d'une chaîne de caractères...2 Manipulation de chaînes de caractères...3 Longueur d une chaîne... 3 Extraction d un caractère... 3 Comparaison de deux chaînes...4 Extraction d une sous-chaîne... 5 Concaténation de chaînes... 5 Conversion majuscules/minuscules...6 Exercices... 7 Références... 7 1
Une chaîne de caractères (appelée string en anglais) est une suite de caractères permettant de manipuler des mots et des phrases. Ce sont donc des objets importants en programmation, intervenant dans la communication entre l'utilisateur et l'ordinateur. Dans ce chapitre, la représentation d'une chaîne de caractères dans la mémoire de l'ordinateur est d'abord présentée. Par la suite, l'utilisation et la manipulation des chaînes de caractères sont expliquées. Qu'est-ce qu'une chaîne de caractères Dans la mémoire de l'ordinateur, une chaîne de caractères est stockée sous forme d'un tableau de caractères. Chaque caractère est codé en utilisant un codage ASCII, UTF-8 ou Unicode dépendant du langage de programmation utilisé. De plus, la longueur de la chaîne de caractères est aussi stockée en mémoire. La figure suivante représente la chaîne de caractères "Steph" stockée en mémoire : Figure 1 : Chaîne de caractères en mémoire Création et initialisation d'une chaîne de caractères En Javascript, les chaînes de caractères sont représentées par des objets de type String. Ces objets de type String sont construits par l'interpréteur lorsqu une chaîne littérale est rencontrée dans le programme source. Une chaîne littérale est une suite de caractères délimitée par des guillemets droits doubles, comme par exemple "Steph". La longueur de la chaîne est le nombre de caractères figurant entre les apostrophes : 5 pour "Steph" et 0 pour la chaîne vide "". L'exemple suivant présente la façon de déclarer et d'initialiser une chaîne de caractères. Exemple 1 Déclarer un objet unechaine qui contiendra la chaîne de caractères "Samuel". var unechaine = "Samuel"; 2
Longueur d une chaîne L'objet de type String a une seule propriété: la propriété length. Cette propriété permet de connaître la longueur de la chaîne, c'est à dire le nombre de caractères de la chaîne. Exemple 2 Afficher la longueur de la chaîne littérale "Mon texte ici" : var unechaine = "Mon texte ici"; window.alert(unechaine.length); L exécution de l exemple précédent permettra d afficher la fenêtre suivante : Manipulation des chaînes de caractères Javascript fournit plusieurs méthodes prédéfinies permettant de manipuler les chaînes de caractères. Cette section présente quelques-unes des méthodes disponibles. Extraction d un caractère La méthode charat permet d extraire un caractère dans la chaîne. L'indice doit être compris entre 0 et length () - 1. Exemple 3 Extraire le troisième caractère de la chaîne "Samuel" : var unechaine = "Samuel"; document.write(unechaine.charat(2)); Le résultat affiché par l exemple précédent est le caractère 'm'. 3
Extraction d une sous-chaîne La méthode substring extrait une partie d'une chaîne de caractères. La position du premier caractère à extraire doit être précisée, alors que la position du dernier caractère à extraire est optionnelle. Si la position du dernier caractère est précisée, l'extraction s'étend jusqu'à cette position, mais en l'excluant. Par ailleurs, si la dernière position est omise, l'extraction s'étend jusqu'au dernier caractère de la chaîne. Exemple 4 Afficher les 3 derniers caractères de la chaîne littérale "Stéphane" : var unechaine = "Stéphane"; document.write(unechaine.substring(5)); Le résultat affiché par l exemple précèdent est : ane. La sous-chaîne extraite débute à la position 5 et se rend jusqu'à la fin de unechaine. Exemple 5 Afficher 3 caractères à partir de la position 4 : var unechaine = "Stephane"; document.write(unechaine.substring(4, 7)); Le résultat affiché par l exemple précédent est : han. La sous-chaîne extraite débute à la position 4 et se rend jusqu'à la position 7 (non comprise). Concaténation de chaînes Le terme «concaténer» signifie joindre deux chaînes bout à bout pour n'en former qu'une seule. En Javascript, Il faut utiliser l opérateur «+» pour effectuer cette opération. L'exemple suivant illustre la façon de concaténer des chaînes de caractères. Exemple 6 var unechaine = "Bonjour"; unechaine = unechaine + " Samuel"; document.write(unechaine); Le résultat affiché par l'exemple précédent sera identique à l'affichage de la chaîne "Bonjour Samuel". 4
Conversion majuscules/minuscules La méthode tolowercase renvoie une chaîne où tous les caractères majuscules sont convertis en minuscules et, inversement, pour la méthode touppercase. Exemple 7 Convertir la chaîne "Stéphane" en majuscules et l afficher : var unechaine = "Stéphane"; unechaine = unechaine.touppercase(); document.write(unechaine); Le résultat affiché par l exemple précédent : STÉPHANE Exemple 8 Convertir la chaîne "Stéphane" en minuscules et l afficher : var unechaine = "Stéphane"; unechaine = unechaine.tolowercase(); document.write(unechaine); Le résultat affiché par l exemple précédent : stéphane Position d'une sous-chaîne La méthode indexof permet de trouver la position d'une sous-chaîne dans une chaîne de caractères, en partant d'une position d'une position de départ spécifiée dans cette dernière. Retourne -1 si pas trouvé Exemple 9 Trouver la position de la première occurrence de la chaîne "ab" dans la chaîne "abracadabra". var chaine= "abracadabra"; var pos1 = chaine.indexof("ab",0); La deuxième instruction ci-dessus assigne la valeur 0 à la variable pos1. Exemple 10 Trouver la position de la première occurrence de la chaîne "ab" dans la chaîne "abracadabra" en commençant la recherche à partir du 3e caractère dans la chaîne. 5
var chaine= "abracadabra"; var pos2 = chaine.indexof("ab",2); La deuxième instruction ci-dessus assigne la valeur 7 à la variable pos2. Exercices Exercice 6.1 Après la déclaration var lieu = "Quartier Ahuntsic"; que donnent les expressions suivantes : Expression lieu.length lieu.substring(5,9) lieu.charat(12) lieu.indexof("hun",3) lieu.indexof("v") lieu.substring(0,5).touppercase() Valeur Exercice 6.2 Écrire un script en Javascript qui vous permettra de vérifier vos réponses de l'exercice 1. 6
Exercice 6.3 Ouvrez le fichier qui vous fournit le code de l interface ci-dessous. Complétez le code de la fonction separerpremiercaractere() de telle sorte que la fonction puisse obtenir la chaîne tapée dans le premier champ texte, en séparer le premier caractère des autres par trois tirets et afficher le résultat dans le dernier champ texte. Voir exemple ci-dessous. Complétez aussi le commentaire expliquant ce que fait la fonction et indiquez votre nom comme programmeur et la date d aujourd hui. 7
Exercice 6.4 Ouvrez le fichier qui vous fournit le code de l interface ci-dessous. Complétez le code de la fonction separerderniercaractere() de telle sorte que la fonction puisse obtenir la chaîne tapée dans le premier champ texte, en séparer le dernier caractère des autres par trois tirets et afficher le résultat dans le dernier champ texte. Voir exemple ci-dessous. Complétez aussi le commentaire expliquant ce que fait la fonction et indiquez votre nom comme programmeur et la date d aujourd hui. 8
Exercice 6.5 Ouvrez le fichier qui vous fournit le code de l interface ci-dessous. Complétez le code de la fonction direbonjour() de telle sorte que la fonction puisse obtenir le prénom et le nom tapés et afficher le résultat illustré ci-dessous. Le prénom doit être converti en minuscules, sauf pour la première lettre et le nom de famille doit être converti tout en majuscules. Complétez aussi le commentaire expliquant ce que fait la fonction et indiquez votre nom comme programmeur et la date d aujourd hui. 9
Exercice 6.6 Ouvrez le fichier qui vous fournit le code de l interface ci-dessous. Complétez le code de la fonction extrairedeuxiememot() de telle sorte que la fonction puisse obtenir la chaine tapée dans le premier champ texte, en isoler le deuxième mot et l afficher dans le dernier champ texte. Voir exemple ci-dessous. Complétez aussi le commentaire expliquant ce que fait la fonction et indiquez votre nom comme programmeur et la date d aujourd hui. Tentez aussi de prévoir le cas où il n y aurait pas de deuxième mot et affichez alors un message... Références 1. Olivier Hondermarck, JavaScript, Le guide complet, Micro Application Éditions, Paris, mai 2011, 416 pages. 2. Johann Pardanaud et Sébastien de la Marck, Dynamisez vos sites web avec Javascript!, 376 pages, http://www.siteduzero.com/tutoriel-3-309961-dynamisez-vos-sites-web-avec-javascript.html 3. JavaScript Tutorial, http://www.w3schools.com 4. Référence Netscape (p.22) 10